【发布时间】:2016-11-12 08:05:30
【问题描述】:
在我的测试代码中,为什么 tuple 和 None 的 print 结果不同?看起来 a、b 指向同一个对象None,但 c、d 指向不同的对象,尽管它们的值相同(都等于 (a,b))。
我知道is 关键字检查位于后面的对象,而不仅仅是比较像== 这样的值。而这里我使用 tuple 是因为我认为 tuple 是不可变的,所以至少这不是对象是可变还是不可变的问题。
但是为什么变量 a、b 不像 c、d 那样创建并指向两个不同的 None 对象?
a=None
b=None
c=(1,2)
d=(1,2)
print(a is b)
print(c is d)
【问题讨论】: