当python添加小整数时,幕后会发生什么?

当python添加小整数时,幕后会发生什么?,第1张

当python添加小整数时,幕后会发生什么?

Python会

int
以一定数量保留对象池。当您在该范围内创建一个时,您实际上会获得对已有对象的引用。我怀疑这是出于优化原因。

对于超出该池范围的数字,每当您尝试创建一个新对象时,您似乎都会取回该对象。

$ pythonPython 3.2 (r32:88445, Apr 15 2011, 11:09:05) [GCC 4.5.2 20110127 (prerelease)] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> x = 300>>> id(x)140570345270544>>> id(100+200)140570372179568>>> id(x*2)140570345270512>>> id(600)140570345270576

资源

PyObject * PyInt_FromLong(long ival)返回值:新参考。创建一个新的整数对象,其值为ival。

当前的实现为-5到256之间的所有整数保留一个整数对象数组,当您在该范围内创建int时,您实际上只是返回对现有对象的引用。
因此应该可以更改1的值。我怀疑在这种情况下Python的行为是不确定的。:-)

重点矿



欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/5653828.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存