__weakref__
относится к слабым ссылкам. Я понимаю всю идею слабых ссылок и где я могу их использовать. Единственное, что я не получаю описывается в следующем:Почему класс .__ weakref__ not None, а экземпляр .__ weakref__ is 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__
из класса?
* "это означает, что' A .__ weakref__ 'такой же, как' A() .__ weakref__' "* - явно нет, поэтому ваше предположение о том, что *" экземпляры наследуют '__weakref__' из класса" *, неверно. 'A .__ weakref__ is A() .__ weakref__' оценивает значение' False'. – jonrsharpe