用python int类演示int的声明和重新分配
因为python中的每个对象都有以下属性用python int类演示int的声明和重新分配,python,integer,immutability,Python,Integer,Immutability,因为python中的每个对象都有以下属性 类型 价值观 标识-对象在内存中的地址 在python中执行上述代码时,将创建一个值为300的int类实例。X指向对象的标识 x = x + 233 此时将创建一个新的int类实例,其值为533,现在x指向该对象的标识 有人能用python int类解释这个工作流吗 When we execute the code x=5, We create a new int object in python. 其实不是: >>> x =
x = x + 233
此时将创建一个新的int类实例,其值为533,现在x指向该对象的标识
有人能用python int类解释这个工作流吗
When we execute the code x=5, We create a new int object in python.
其实不是:
>>> x = 10
>>> y = 10
>>> x is y
True
>>> x = 1000
>>> y = 1000
>>> x is y
Python有一个用于小整数的小缓存。因此,当您创建两个值小于256
的变量时,您实际上引用了内存中的同一对象
When we execute x = x + 6, x object changes.
实际上,不是:)int
-s在Python中是不可变的,所以您不需要更改现有对象。创建一个新对象:
>>> id(x)
140352270947408
>>> x = x + 1
>>> id(x)
140352270947384
你看过吗?从docs:
当前的实现为-5到256之间的所有整数保留一个整数对象数组,当您在该范围内创建一个int时,实际上只返回对现有对象的引用。因此,应该可以更改1的值。我怀疑Python在本例中的行为是未定义的。:-)代码>好。谢谢德玛斯。我想知道python的int
类对上述代码没有任何作用,我已经更新了这个问题。这个答案对我帮助很大。我需要知道python是如何创建int对象的,它是如何从一个对象更改为另一个对象的(在我的例子中,是引用x)
>>> id(x)
140352270947408
>>> x = x + 1
>>> id(x)
140352270947384