在不清除每次递归数据的情况下存储self.astring,可以通过以下方式实现:
class MyClass:
astring = ""
def recursive_function(self):
# 在递归函数中使用self.astring
self.astring += "some data"
# 递归调用
self.recursive_function()
# 创建类实例
my_obj = MyClass()
# 调用递归函数
my_obj.recursive_function()
# 输出结果
print(my_obj.astring)
def outer_function():
astring = ""
def inner_function():
nonlocal astring
astring += "some data"
inner_function()
return inner_function
# 创建闭包函数
recursive_func = outer_function()
# 调用递归函数
recursive_func()
# 输出结果
print(recursive_func.__closure__[0].cell_contents)
这两种方法都可以在递归调用时保留self.astring的值,实现存储而不清除的效果。
领取专属 10元无门槛券
手把手带您无忧上云