【发布时间】:2014-04-18 11:44:16
【问题描述】:
类变量本质上是全局变量吗?
考虑这个例子,在 bar.py 中:
class Bar(object):
b = {}
然后在 foo.py 中:
def foo1():
import bar
bar.Bar.b["key"] = "foo1"
def foo2():
import bar
print bar.Bar.b.get("key", "foo2")
foo1()
foo2()
“key”值始终为“foo1”。
就我而言,这似乎是一个全局变量。但是为什么在调用 foo1 和 foo2 之间没有重置或删除类变量?
【问题讨论】:
-
@mgilson 我在问为什么变量不是在两个调用之间被垃圾收集;该链接似乎在谈论实例和类变量之间的区别。