python 的赋值是引用

Python publisher01 36℃

python 的 一切都是对象

python 是 高度面向对象特性,所以实际上Python里面的任何元素都是一种对象。考虑一下如下代码:

>>> print(300)
300

这个代码会做三件事情

1,生成一个int对象

2,把300的值赋给int对象

3,在console里面打印300

可以从如下代码里面看出300为int的实例

>>> type(300)
<class 'int'>

python的变量是一个符号,是实例的引用

比如

>>> n = 300

这个语句会创造一个300的int实例,并且让变量n指向到这个实例


1560501698235.png

验证一下想法

>>> id(300)
140261438010384
>>> n=300
>>> id(n)
140261438010384
>>> type(n)
<class 'int'>
>>> print(n)
300

注释:id() 函数用于获取对象的内存地址。

变量赋值给变量,也是传引用

>>> id(n)
140261438010384
>>> id(m)
140261438010384


1560502218220.png

如果重新给m赋值,那么m会把自己的指针指向新实例

>>> m=400
>>> id(m)
140261438010352
>>> id(n)
140261438010384


1560502329594.png

如果n再重新赋值,那么会没有变量指向实例300

>>> n='foo'
>>> id(n)
140261438037944
>>> id(m)
140261438010352


1560502424596.png

转载请注明:Python量化投资 » python 的赋值是引用

喜欢 (0)or分享 (0)