Python-将数字与布尔值进行比较(始终返回false)



在python中是否有某种关键字可以使用,可以在逻辑上与始终为false?

例如,我想要

之类的东西
None > 20

评估时要返回false。除了None以外,是否有一些关键字可以使用,因为比较了非类型和整数会引发错误?

我认为没有一个内置对象可以做到这一点,但是您可以随时自行制作:

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

相关内容

  • 没有找到相关文章

最新更新