All I want is for bool(myInstance) to return False (and for myInstance to evaluate to False when in a conditional like if/or/and. I know how to override >, <, =)
I've tried this:
class test:
def __bool__(self):
return False
myInst = test()
print bool(myInst) #prints "True"
print myInst.__bool__() #prints "False"
Any suggestions?
(I am using Python 2.6)
From stackoverflow
-
Is this Python 2.x or Python 3.x? I think for Python 2.x you are looking to override
__nonzero__()instead?class test: def __nonzero__(self): return False -
If you want to keep your code forward compatible with python3 you could do something like this
class test: def __bool__(self): return False __nonzero__=__bool__
0 comments:
Post a Comment