Pythonic方式检查条件

时间:2013-10-18 17:33:29

标签: python if-statement

我正在试图弄清楚什么是最像pythonic的做法,如

if is not 100 or is not 101:
    do something:

1 个答案:

答案 0 :(得分:2)

如果您有一个整数值,并且您想测试它不是100而不是101,那么您可以使用带有元组的in成员资格测试:

if foo not in (100, 101):

您应该对整数使用身份测试(isnot 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