我试图弄清楚什么是最pythonic的方式来做声明
if is not 100 or is not 101:
do something:
如果你有一个整数值并且你想测试它不是 100 也不是 101,你可以使用in
带有元组的成员资格测试:
if foo not in (100, 101):
您不应将身份测试 (is
和not is
) 与整数一起使用。身份测试适用于小整数(介于 -5 和 255 之间)的事实是 CPython 优化细节。身份与具有相同的价值不同;两个对象可以具有相同的值,但不一定是相同的引用:
>>> value1 = 4242
>>> value2 = 4242
>>> value1 == value2
True
>>> value1 is value2
False
>>> value3 = value1 # assignment
>>> value1 == value3
True
>>> value1 is value3
True