为什么这不是天真的预期?
class Foo(object):
def __init__(self):
self.bar = 3
def __bool__(self):
return self.bar > 10
foo = Foo()
if foo:
print 'x'
else:
print 'y'
Run Code Online (Sandbox Code Playgroud)
(输出是x)
if <boolean> :
# do this
Run Code Online (Sandbox Code Playgroud)
boolean必须是True或False.
那么为什么
if "poi":
print "yes"
Run Code Online (Sandbox Code Playgroud)
输出:是的
我不明白为什么是打印,因为"poi"是虚假的真或假.
在 Javascript 中,有 == 运算符来测试一个值是否为假:
'' == false // true
Run Code Online (Sandbox Code Playgroud)
在 Python 中,== 对应于 Javascript 中的 ===,这是一个精确的等式(值和类型)。
那么如何在 Python 中找出一个值是否为假呢?