我正在试图弄清楚什么是最像pythonic的做法,如
if is not 100 or is not 101:
do something:
答案 0 :(得分:2)
如果您有一个整数值,并且您想测试它不是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