Python语言参考中提到了三个具有单一,唯一实例的对象:
例如,在CPython中进行了非常有限的测试后,
None
、NotImplemented
和Ellipsis
(见第3.2节“标准类型层次结构”)。由于None
的唯一性得到保证,测试x is None
成为了一种常见的习惯用法。我在Python文档或Stack Overflow上没有找到其他关于唯一实例对象的提及。一些问题,如这个问题,提出了有趣的建议来构造这样的对象,但我想知道的是除了这三个内置对象之外,是否还有我错过的其他对象。例如,在CPython中进行了非常有限的测试后,
()
似乎是唯一的,因此测试x is ()
是否安全?还是说对于这种情况,x == ()
是必须的?
x is ()
没有意义,if x
可以达到同样的效果。你为什么要问呢? - Padraic Cunninghambool(x)
可能有许多值为False
。我需要检查x
是否实际上是()
,而不是其他可能性之一,原因与您使用x is None
相同。 - David Munroisinstance(x, tuple)
也可以明确地让你检查 x 是否确实是一个元组。 - Padraic Cunningham