在 Python 中是否有某种关键字可以在逻辑上与始终为 false 进行比较?
例如,我想要类似的东西
None > 20
计算时返回 false。除了此处的 None 之外,是否还有一些关键字可以使用,因为比较 NoneType 和 Integer 会引发错误?
请您参考如下方法:
我认为没有内置对象可以执行此操作,但您始终可以创建自己的对象:
class Thing:
def __lt__(self, other):
return False
#use the same function for <=, ==, >, etc
__le__ = __eq__ = __gt__ = __ge__ = __lt__
x = Thing()
print(x < 20)
print(x <= 20)
print(x > 20)
print(x >= 20)
print(x == 20)
结果:
False
False
False
False
False
编辑:我记得有一个内置的方法可以做到这一点。如果只需要与普通数字进行比较,可以使用特殊的“非数字”浮点值:
x = float("nan")
print(x < 20)
print(x <= 20)
print(x > 20)
print(x >= 20)
print(x == 20)
结果:
False
False
False
False
False
如果您特别希望 x > 20 返回 False 并且不特别关心其他比较返回什么,那么使用特殊的“负无穷大”浮点值可能更有意义.
>>> x = float("-inf")
>>> x > 20
False
