在 Python 中,类属性的生命周期是多少?如果当前没有该类的实例处于活动状态,那么该类及其类属性是否会被垃圾收集,然后在下次使用该类时重新创建?
例如,考虑以下内容:
class C(object):
l = []
def append(self, x):
l.append(x)
假设我创建了 的一个实例C
,将 5 附加到C.l
,然后该实例C
不再被引用并且可以被垃圾回收。稍后,我创建另一个实例C
并读取C.l
. 我保证C.l
会持有[5]
吗?或者类本身和它的类属性是否有可能被垃圾收集,然后C.l = []
第二次执行?
或者,换一种说法:类属性的生命周期是“永远”的吗?类属性是否与全局变量具有相同的生命周期?