【发布时间】:2019-06-02 15:25:51
【问题描述】:
我无法理解这段代码。
我调用了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()
【问题讨论】:
-
您正在更改
K的a类属性,因此它会影响该类的所有实例 -
a是一个类变量,在K的所有实例之间共享。见docs.python.org/3/tutorial/… -
谢谢我现在明白了..
标签: python