读书人

初学python。不可变部类传引用

发布时间: 2013-10-13 14:03:53 作者: rapoo

初学python。不可变类型传引用。
刚刚学python。问个 笨问题。
不可变类型传 是相当于 复制一份。传。

 
a=3
b=a
a=5
print a # a=5
print b # b=3


b接收的 新的拷贝。这很对。但是 不可变类型 怎么传 引用。
就是 b还是引用 a的地址。
[解决办法]

a = [3]
b = a
b[0]=0
print a[0] #0

[解决办法]
python是万物皆对象,用c的说法就是全指针。对象采用引用计数,所以不是你顶楼那个说法...

>>> import sys
>>> id(3)
35576384
>>> a = 3
>>> id(a)
35576384
>>> sys.getrefcount(3)
113
>>> b = a
>>> id(b)
35576384
>>> sys.getrefcount(3)
114
>>> a = 5
>>> id(a)
35576360
>>> sys.getrefcount(3)
113
>>>

读书人网 >perl python

热点推荐