相关疑难解决方法(0)

在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'
Run Code Online (Sandbox Code Playgroud)

(输出是x)

python boolean class python-2.x python-2.7

64
推荐指数
3
解决办法
1万
查看次数

覆盖自定义类的bool()

所有我想要的是bool(myInstance)返回False(并且myInstance在条件中评估为False,如if /或/和.我知道如何覆盖>,<,=)

我试过这个:

class test:
    def __bool__(self):
        return False

myInst = test()
print bool(myInst) #prints "True"
print myInst.__bool__() #prints "False"
Run Code Online (Sandbox Code Playgroud)

有什么建议?

(我使用的是Python 2.6)

python casting boolean class python-2.x

50
推荐指数
4
解决办法
2万
查看次数

在"A:"中对A进行了什么操作?

让我们说:

class Bar:
    pass
A = Bar()

while A:
    print("Foo!")
Run Code Online (Sandbox Code Playgroud)

然后调用什么操作A来确定while循环?

我尝试过,__eq__但没有做太多.

python class operation while-loop python-3.x

3
推荐指数
1
解决办法
45
查看次数