python变量的地址,整数值是不可变的吗?

python变量的地址,整数值是不可变的吗?,python,memory-address,Python,Memory Address,我在某处读到,在python id()中,函数给出了变量指向的对象的地址;x=5,id(a)将给出对象5的地址,而不是变量x的地址。那么我们如何知道变量x的地址呢 id(对象) 返回对象的“标识”。这是一个整数,保证该对象在其生存期内唯一且恒定。两个生命周期不重叠的对象可能具有相同的id()值 CPython实现细节:这是内存中对象的地址 所以这不能保证是地址。(您想对地址做什么? 在CPython中,它恰好是地址,因为对象的地址显然是唯一的,所以它是一个简单的选择 通常,Python不像C那样

我在某处读到,在python id()中,函数给出了变量指向的对象的地址;x=5,id(a)将给出对象5的地址,而不是变量x的地址。那么我们如何知道变量x的地址呢

id(对象)
返回对象的“标识”。这是一个整数,保证该对象在其生存期内唯一且恒定。两个生命周期不重叠的对象可能具有相同的id()值

CPython实现细节:这是内存中对象的地址

所以这不能保证是地址。(您想对地址做什么?
在CPython中,它恰好是地址,因为对象的地址显然是唯一的,所以它是一个简单的选择

通常,Python不像C那样使用指针。我建议您改为搜索您想做的事情通常是如何在python中完成的。改变对任务的思考方式可能比将C思维强加于Python更无摩擦。

首先,
id()
函数不会正式返回地址,它会返回一个唯一的对象标识符,该标识符保证在该对象的生命周期内是唯一的。碰巧CPython使用该唯一id的地址,但它可以随时更改该定义。不管怎样,知道id()的实际含义是没有用的——Python中没有任何东西允许通过其id访问对象

您询问了变量的地址,但在Python中,变量没有地址。 我知道,在C语言、C++语言等语言中,命名变量只是内存中的一个命名位置,其中存储了一个数据项。 但在Python中——当然在CPython中,变量在内存中不是固定的位置。在Python中,所有变量都只是作为键存在于代码运行时维护的字典中

当你说

x = 5
在python中,它找到int(5)对象,然后在本地范围字典中构建一个键值对。实际上,这相当于:

   __dict__['x'] = 5
或者根据范围规则进行类似操作

因此,内存中的某个地方会有一个地址,其中包含字符串“x”,但这根本不是变量的地址