我知道这被问过一百万次。不知怎的,我不相信答案(请原谅我)。我写了以下示例代码。
class Equals:
def checkEquals(self, element1, element2):
return element1 == element2
def checkIs(self,element1,element2):
return element1 is element2
e = Equals()
x = 1000
y = 1000
print x
print y
print id(x)
print id(y)
print e.checkequals(x,y)
print e.checkis(x,y)
这是输出。
1000
1000
37695976
37695976
True
True
现在我的问题是。
虽然x和y值相同,但除非x = y = 1000,否则它们不应放在不同的存储位置?他们为什么放在同一个地方?我相信为什么x是y才会返回True。
在同一程序中,如果我给出x = [10,20],y = [10,20]都有不同的内存位置。为什么会这样?
我在java中也观察过相同的概念" =="因为他们正在比较对象的内存位置。这就是我在python中重新访问它的原因。