类中属性和方法 | Python从入门到精通:高阶篇之三十四
垃圾回收
就像我们生活中会产生垃圾一样,程序在运行过程当中也会产生垃圾。
程序运行过程中产生的垃圾会影响到程序的运行的运行性能,所以这些垃圾必须被及时清理。
什么是垃圾?
没用的东西就是垃圾。
class A:
def __init__(self):
self.name = 'A类'
a = A()
print(a.name)
input('回车键退出...')
执行结果:
添加代码:
a = None
将a设置为了None,此时没有任何的变量对A()对象进行引用,它就是变成了垃圾。
在程序中没有被引用的对象就是垃圾,这种垃圾对象过多以后会影响到程序的运行的性能。所以我们必须进行及时的垃圾回收,所谓的垃圾回收就是讲垃圾对象从内存中删除。
在Python中有自动的垃圾回收机制,它会自动将这些没有被引用的对象删除,所以我们不用手动处理垃圾回收。
与init
类似的还有del
:
del是一个特殊方法,它会在对象被垃圾回收前调用
def __del__(self):
print('A()对象被删除了~~~',self)
此时,若没有a = None
,它的执行结果为:
如果存在a = None
,a变成了垃圾,它的执行结果:
如果此时又使用一个变量b,来引用a对应的对象
b = a
执行结果为:
此时不会删除,因为有对象b的存在。
若添加b = None
,则执行结果为:
若直接执行del a
,执行结果为:
此时不会执行,是因为del直接删除的是变量a,并没有删除对象,有变量b的存在。
若也执行del b
,则会出现:
我们针对整体代码来说明一下input
,代码最后一行的input
指令用来接收一条用户输入,在用户输入数据前运行尚未中止,变量b未被销毁,而在用户输入完成后,系统运行结束,自动回收垃圾变量b。
配套视频课程,点击这里查看
获取更多资源请订阅Python学习站