起立马扎罗

导航

Learning Python 10.15

Shit,因为一些原因没机会发,今天把15~17号的发上来,要整理其中的图片和代码,不知道今天的能不能来得及。另外匆忙间整理的可能比较乱或遗漏图片、代码等,估计后续还需要稍稍完善。

 

Object:每个object都有两个standard header fields:type designator(标识类型)和reference counter(标识是否能回收)。而variable(与object本身无关),没有类型,它只是通过link和object连接起来。废弃的object(当之前与其link的唯一variable指向其他object时)有自动的垃圾收集机制

Shared Reference:当两个variable(x和y)指向同一个object时,改变其中一个variable(x),如果object是不可变的,那么x将指向另一个object,即y不受影响。如果object是可变的并且进行了in-place changes(如list.append()),那么将直接改变object,即同时改变x和y。

Equality:==判断值相同,is判断引用相等。需要注意的是对于常用的数字、字符串,Python内可能有cache。

 

所以可能多个该类型的同值variable指向同一个object导致is判断为True的情况(据说数字-5~255是cache的,未验证,且可能随版本改变)。

1 import sys
2 print(sys.getrefcount(1))
3 #743

 

至207页止。

 

posted on 2012-10-18 10:51  起立马扎罗  阅读(122)  评论(0)    收藏  举报