所有的对象都有引用计数。给一个对象分配一个新名称,或是将其放入一个容器(如列表、元组或字典),都会增加该对象的引用计数。

例如:

a=37         #创建一个值为37的对象
b=a          #增加37的引用计数
c=[]
c.append(b)  #增加37的引用计数

这个例子创建了一个包含值为37的对象,a只是引用了这个新创建的对象的一个名称。将a赋值给b时,b就成了同一对象的新名称,该对象的引用计数因此增加。类似地,将b放到一个列表种,该对象的引用计数将再次增加。在这个例子中,至始至终只有一个37对象,其它所哟地操作都是创建了该对象的新引用。

使用del语句、引用超出作用域、重新赋值,对象的引用计数都会减少,例如:

del a    #减少37的引用计数  
b=42     #减少37的引用计数
c[0]=43  #减少37的引用计数

results matching ""

    No results matching ""