python的赋值机制

2019-06-19  本文已影响0人  一百万个不确定

python的一切是对象

不只是变量是对象,python的一切都是对象

>>> print(300)
300

这个代码会做三件事情

1,生成一个int对象

2,把300的值赋给int对象

3,在console里面打印300

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

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

python的赋值是传递引用

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

>>> n = 300

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

1560501698235.png

使用如下代码来验证想法

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

可以看到 对象300的地址 和 变量n的地址是一样的

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

python多变量指向同一个对象

如下代码

>>> m=n
>>> 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
上一篇 下一篇

猜你喜欢

热点阅读