专栏名称: Python技术博文
分享有关Python知识,了解IT界最新技术,让我们一起从菜鸟变成大牛吧!
目录
相关文章推荐
Python爱好者社区  ·  很严重了,大家别轻易离职 ·  22 小时前  
百职帮  ·  高考结束别躺平!这个暑假学Python,开学 ... ·  17 小时前  
百职帮  ·  高考结束别躺平!这个暑假学Python,开学 ... ·  17 小时前  
Python开发者  ·  苹果炮轰推理模型全是假思考!4个游戏戳破神话 ... ·  20 小时前  
Python爱好者社区  ·  月薪3万35岁脑干出血程序员:ICU躺了28 ... ·  2 天前  
Python爱好者社区  ·  软考,yyds ·  2 天前  
51好读  ›  专栏  ›  Python技术博文

Python内存管理

Python技术博文  · 公众号  · Python  · 2019-11-22 11:40

正文

请到「今天看啥」查看全文


11246696
True
False
可见a和b实际上是指向同一个对象的两个引用。
小结:
1、Python缓存了整数和短字符串,因此每个对象在内存中只存有一份,引用所指对象就是相同的,即使使用赋值语句,也只是创造新的引用,而不是对象本身;
2、Python没有缓存长字符串、列表及其他对象,可以由多个相同的对象,可以使用赋值语句创建出新的对象。
对象引用对象

Python的一个容器对象(container),比如表、词典等,可以包含多个对象。实际上,容器对象中包含的并不是元素对象本身,是指向各个元素对象的引用。
对象引用对象,是Python最基本的构成方式。即使是a = 1这一赋值方式,实际上是让词典的一个键值"a"的元素引用整数对象1。该词典对象用于记录所有的全局引用。
容器对象的引用可能构成很复杂的拓扑结构。我们可以用objgraph包来绘制其引用关系,比如
x = [1, 2, 3]y = [x, dict(key1=x)]z = [y, (x, y)]import objgraphobjgraph.show_refs([z], filename='ref_topo.png')






请到「今天看啥」查看全文