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的行为是不确定的。:-)
重点矿
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)