我对理解此代码有疑问。
我叫过dd
3次,但是为什么它每次都没有删除函数的前一个堆栈呢?
我得到以下输出:
11
12
13
您能解释一个解决方案吗?另外,这个问题还会在哪里发生?
class Hello():
v=10
class K():
a=Hello()
def p(self):
self.a.v=self.a.v+1
print(self.a.v)
self.a=None
def dd():
ff=K()
ff.p()
del(ff)
dd()
dd()
dd()
答案 0 :(得分:0)
删除ff时,将删除从K继承属性的新对象(从Hello()继承属性)。
将属性继承给对象时,它们会一起更改,但不会一起删除。您将需要重新初始化属性,以使它们恢复原样。