【发布时间】:2023-02-17 23:21:53
【问题描述】:
这是我的代码
x = 5
y = 5
print(x is y)
print(id(x))
print(id(y))
输出是
True
1903991482800
1903991482800
我不知道为什么 x 和 y 在这里有相同的位置
请帮我说明一下这个问题! 谢谢!
【问题讨论】:
标签: python python-3.x location operator-keyword
这是我的代码
x = 5
y = 5
print(x is y)
print(id(x))
print(id(y))
输出是
True
1903991482800
1903991482800
我不知道为什么 x 和 y 在这里有相同的位置
请帮我说明一下这个问题! 谢谢!
【问题讨论】:
标签: python python-3.x location operator-keyword
你的问题在技术上是一个复杂的概念,但我会尽量用简单的术语向你解释。
假设一个数字,比如“3”,存储在你的记忆中。当你声明 a = 3 时,Python 解释器实际上做的是让变量 'a' 指向存储 3 的内存位置。所以如果数字 3 存储在像 'xxyyzz' 这样的地址中,那么当你声明 a = 3 时,变量 a 指向内存地址 'xxyyzz'。同样,当您声明另一个变量 b = 3 时,发生的情况是变量“b”也指向内存位置“xxyyzz”。 Python 中的“is”运算符比较这些变量的内存地址,因此您得到 id(a)==id(b) 为 True。
希望这可以帮助!
【讨论】: