对象引用和 del
删除引用
class Test:
def __del__(self):
print('删除一个对象', self)
t1 = Test()
t2 = t1
print('t1', t1)
del t1
print('t2', t2)
del t2
输出为(注意 __del__
在引用计数为 0
时才打印):
t1 <__main__.Test object at 0x0000020E92311220>
t2 <__main__.Test object at 0x0000020E92311220>
删除一个对象 <__main__.Test object at 0x0000020E92311220>
为了简化内存管理,Python通过引用计数机制实现自动垃圾回收功能,Python中的每个对象都有一个引用计数,用来计数该对象在不同场所分别被引用了多少次。每当引用一次Python对象,相应的引用计数就增1,每当消毁一次Python对象,则相应的引用就减1,只有当引用计数为零时,才真正从内存中删除Python对象。