== vs 的一个例外是?
An exception with == vs is?
据我了解,==
运算符检查两个变量是否相等,而 is
运算符检查两个变量是否具有相同的标识/引用相同的对象。那么为什么 print(id(a) is id(b))
False
呢?这两个变量引用的不是同一个整数吗?
a = 1000000000
b = 1000000000
print(id(a)) #182798416
print(id(b)) #182798416
print(id(a) is id(b)) #False
print(id(a) == id(b)) #True
print(182798416 is 182798416) #True
id
函数returns一个新的整型对象,每次都是,所以整型对象是不一样的。
据我了解,==
运算符检查两个变量是否相等,而 is
运算符检查两个变量是否具有相同的标识/引用相同的对象。那么为什么 print(id(a) is id(b))
False
呢?这两个变量引用的不是同一个整数吗?
a = 1000000000
b = 1000000000
print(id(a)) #182798416
print(id(b)) #182798416
print(id(a) is id(b)) #False
print(id(a) == id(b)) #True
print(182798416 is 182798416) #True
id
函数returns一个新的整型对象,每次都是,所以整型对象是不一样的。