Python 垃圾回收机制
Posted jzxs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 垃圾回收机制相关的知识,希望对你有一定的参考价值。
# 就像我们生活中会产生垃圾一样,程序在运行过程当中也会产生垃圾 # 程序运行过程中产生的垃圾会影响到程序的运行的运行性能,所以这些垃圾必须被及时清理 # 没用的东西就是垃圾 # 在程序中没有被引用的对象就是垃圾,这种垃圾对象过多以后会影响到程序的运行的性能 # 所以我们必须进行及时的垃圾回收,所谓的垃圾回收就是讲垃圾对象从内存中删除 # 在Python中有自动的垃圾回收机制,它会自动将这些没有被引用的对象删除, # 所以我们不用手动处理垃圾回收 # ‘‘‘Python 采用自动引用计数(ARC)方式来回收对象所占用的空间, 当程序中有一个变量引用该 Python 对象时, Python 会自动保证该对象引用计数为 1;当程序中有两个变量引用该 Python 对象时, Python 会自动保证该对象引用计数为 2,依此类推,如果一个对象的引用计数变成了 0, 则说明程序中不再有变量引用该对象,表明程序不再需要该对象,因此 Python 就会回收该对象。‘‘‘ ‘‘‘ 当一个对象被垃圾回收时,Python 就会自动调用该对象的 __del__ 方法。 需要说明的是,不要以为对一个变量执行 del 操作,该变量所引用的对象就会被回收, 只有当对象的引用计数变成 0 时,该对象才会被回收。 因此,如果一个对象有多个变量引用它,那么 del 其中一个变量是不会回收该对象的。‘‘‘ class A: def __init__(self): self.name = ‘A类‘ # del是一个特殊方法,它会在对象被垃圾回收前调用 def __del__(self): print(‘A()对象被删除了~~~‘,self) a = A() b = a # 又使用一个变量b,来引用a对应的对象 print(a.name) # a = None # 将a设置为了None,此时没有任何的变量对A()对象进行引用,它就是变成了垃圾 # b = None # del a # del b # input(‘回车键退出...‘)
以上是关于Python 垃圾回收机制的主要内容,如果未能解决你的问题,请参考以下文章