在Python中定义一个类的“boolness”

12 浏览
0 Comments

在Python中定义一个类的“boolness”

为什么这段代码不像人们可能天真地期望的那样工作?

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'

(输出结果是 `x`)

0