为啥Python有相同的不可变对象id不同
\u0026lt;Python源码剖析\u0026gt;上解释的很清楚:Python里一切都是对象.所以1,2,3,4...这些整数也都是对象.这些基本的不可变对象在python里会被频繁的引用,创建,如果不找到好的办法的话很容易让python引发效率瓶颈,所以python引入了整数对象池的机制.intobject.c中代码片段#ifndef NSMALLPOSINTS#define NSMALLPOSINTS 257#endif#ifndef NSMALLNEGINTS#define NSMALLNEGINTS 5#endif#if NSMALLNEGINTS + NSMALLPOSINTS \u0026gt; 0/* References to small integers are saved in this array so that they can be shared. The integers that are saved are those in the range -NSMALLNEGINTS (inclusive) to NSMALLPOSINTS (not inclusive).*/static PyIntObject *small_ints;#endif 上面清楚写了=?修改索引为i的字符,而可变对象支持修改。
推荐阅读
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 你为啥从窝窝商城离职?
- 怎样成为一名合格的Python程序员?
- 为啥5G和2.4G默认的BSSID是相同的
- 为啥电器实体店的价格比淘宝贵那么多
- python 爬虫,咋获得输入验证码之后的搜索结果
- 现在在线学习视频有很多了,为啥大部分人还是喜欢下载下来观看
