博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一点困惑和思考
阅读量:6321 次
发布时间:2019-06-22

本文共 642 字,大约阅读时间需要 2 分钟。

在学习c++中,a+=b,那么就同等于a=a+b

但是在python中是否如此呢。

 

所以就有了

a=[100]a=a+a#此时a=[100,100],但不妨思考一下,地址还是最开始a的地址吗

 于是有了我尝试的以下代码

1 a=[100] 2 print(id(a)) 3  4 a=a+a 5 print(id(a)) 6  7 b=[100] 8 print(id(b)) 9 10 b+=[100]11 print(id(b))

 

然而得到的结果却是

3071558316307155844430715583163071558316

很有趣的结果不是吗,

事实上,在python中,a=1,等于号的意思应该是,在一个内存中,寻找一个内容为1的地址,然后把这个地址的引用给了a(假如没有的话,就new一个喽),但是如果有了,那么直接把引用交给这个变量就行了。

于是我又尝试了以下代码

1 a=1 2 print(id(a)) 3 b=1 4 print(id(b)) 5 c=1 6 print(id(c)) 7 d=1 8 print(id(d)) 9 f=110 print(id(f))

结果为

139424192139424192139424192139424192139424192

所以在python中,变量名似乎更加像一个个标签,想贴哪贴哪,一个个内存,就是被贴的目标

 

转载于:https://www.cnblogs.com/zimudao/p/7822255.html

你可能感兴趣的文章
Linux pipe函数
查看>>
springMVC 前后台日期格式传值解决方式之二(共二) @InitBinder的使用
查看>>
springMVC配置静态资源访问的<mvc:resources>标签的使用
查看>>
Android APP安装后不在桌面显示图标的应用场景
查看>>
Ural 1183 Brackets Sequence(区间DP+记忆化搜索)
查看>>
内部类的继承
查看>>
理解 python metaclass使用技巧与应用场景分析
查看>>
怎么面试架构师
查看>>
oracle系统包——dbms_random用法及order by 小结(转)
查看>>
SQL Server性能调优——报表数据库与业务数据库分离
查看>>
Rsync启动停止脚本
查看>>
MySQL5.6的my.ini配置
查看>>
ux.plugin.ConTpl 模版元素监听扩展
查看>>
【转】使用sklearn做单机特征工程
查看>>
springmvc+mybatis+redis(转)
查看>>
ibatis配置xml文件中CDATA的用法
查看>>
【转】2012年7月9 – 知名网页游戏公司 PHP高级工程师 最新面试题
查看>>
purge
查看>>
数据库的增加与更新合并
查看>>
ArcGIS for Desktop入门教程_第八章_Desktop学习资源 - ArcGIS知乎-新一代ArcGIS问答社区...
查看>>