python的赋值机制

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,881评论 2 9
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,861评论 0 10
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,159评论 1 32
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,635评论 0 17
  • 几天不看大盘,都跌成这熊样了……最近一篇关于解盘的文章还说“短线或有入场机会”呢……还好没毛病,按当时的形势来说,...
    忘言266阅读 223评论 0 0