引用
class Phone:
def __init__(self):
print("init方法")
self.name = ""
self.price = 0
self.cpu = ""
创建对象:
huawei = Phone()
此处:huawei
就是 引用
占用内存
垃圾回收
在Python内部记录着所有使用中的对象有多少引用,当这个对象的 引用计数变为 0
时,说明没有使用该对象,就被垃圾回收
huawei = Phone() # 创建对象
b = huawei # 增加引用的计数
del huawei # 减少引用的计数
b = 100 # 减少引用的计数
例子
无限创建对象,观察内存的变化:
class Phone:
def __init__(self):
print("init方法")
self.name = ""
self.price = 0
self.cpu = ""
while True:
huawei = Phone()
通过任务管理器,发现内存增加的很慢
不是立即回收
由解释器在适当的时机,将垃圾对象占用的内存空间回收
所以在上面代码中,内存占用会越来越多,即:创建对象的速度,比垃圾回收的速度快