Skip to main content
 首页 » 编程设计

Python之将数字与 boolean 值进行比较(始终返回 false)

2025年05月04日23powertoolsteam

在 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