为了跟踪记录已经分配的内存,Python做法类似于扑克牌游戏中的记牌手法。一个对象在创建时被加上一个引用。一个内部的引用记录变量将跟踪记录下每个对象有多少个引用。一个对象被创建和被赋值时,它的初始引用计数为1。对象新的引用也叫别名(alias)。发生在:其他变量也被赋值到同一个对象;对象作为调用其他代码部分(如函数,方法或者类的实例等)的参数传递;对象作为一个系列或映射图的成员被赋值时。
#initialize string object, set reference count to 1
foo1 = ‘foobar’
#increment reference count by assigning another variable
foo2 = foo1 #create an alias
#increment ref count again temporarily by calling function
check_val(fool)
注意上面提到的对象是指’foobar’