"的行为是"对于python中的原语是不同的

时间:2016-05-11 15:18:39

标签: python python-2.7

我知道这被问过一百万次。不知怎的,我不相信答案(请原谅我)。我写了以下示例代码。

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

现在我的问题是。

  1. 虽然x和y值相同,但除非x = y = 1000,否则它们不应放在不同的存储位置?他们为什么放在同一个地方?我相信为什么x是y才会返回True。

  2. 在同一程序中,如果我给出x = [10,20],y = [10,20]都有不同的内存位置。为什么会这样?

  3. 我在java中也观察过相同的概念" =="因为他们正在比较对象的内存位置。这就是我在python中重新访问它的原因。

0 个答案:

没有答案