__weakref__
与弱引用有关。我得到了弱引用背后的全部想法,以及我可能在哪里使用它们。我不明白的是在下面描述的唯一的事:为什么class .__ weakref__不是None,而instance .__ weakref__是None?
一个实例没有属性__weakref__
本身,从类不同,因此实例继承__weakref__
从类,这意味着A.__weakref__
应该是一样A().__weakref__
:
>>> class A: pass
...
>>> A().__dict__ # Each instance starts out as an empty namespace
{}
>>> A.__weakref__ is None;
False
>>> A().__weakref__ is None #But this is True!
True
为什么A.__weakref__
不None
而instance.__weakref__
是None
虽然实例继承类__weakref__
?
*“,这意味着'甲.__ weakref__ '和'A().__ weakref__' *“一样 - 显然不是,所以你假设*”实例从类“*继承'__weakref__'是不正确的。 'A .__ weakref__是A().__ weakref__'的计算结果为'False'。 – jonrsharpe