Слабые ссылки (weakref)
import weakref
class Person:
pass
p = Person()
w = weakref.ref(p)
print(w)
<weakref at 0x7f5b301ce610; to 'Person' at 0x7f5b300eed50>
>>> hex(id(p))
# '0x7f5b300eed50'
print(p)
<__main__.Person object at 0x7f5b300eed50>
# удаляем ссылку
del p
print(w)
<weakref at 0x7f5b301ce610; dead>
# статус слабой ссылки изменился на dead - она была удалена. Хотя сам объект пока остается в памяти
# но если попытаться вызвать объект по мертвой ссылке (dead)...
print(w())
# python вернет None - тоесть ничего
12345678910111213141516171819202122232425262728Last updated