Python令人费解的行为

时间:2016-04-07 17:28:10

标签: python python-2.7

所以我发现函数用比较运算符进行评估。 E.g。

def randomFunction() :
    return None

print randomFunction > 0 # True
print randomFunction > float('inf') #True !!!!
print randomFunction < 0 # False
print randomFunction == 0 # False

这是一个微妙的错误的原因,其中代码似乎在if语句缺失()时起作用,并且主要应该评估为true的东西总是评估为true。

这是为什么?当dir(randomFunction)没有 eq 方法时,这甚至是如何实现的?

在if语句中不允许赋值的语言应该允许在未评估的函数和数字之间进行比较,这似乎令人难以置信?我试图强制我的调试器进入它,但它认为比较是原子的。这背后有一些合理的理由,还是只是另一个WAT moment?

0 个答案:

没有答案