我想知道是否有一种方法可以配置在某些特定情况下返回 False 的类。是什么让空字符串和空列表返回 False ?如何用我自己的条件重现该模式(例如,当该类的属性等于定义值时返回 False)?
一个例子来说明我在找什么:
class Foo():
def__init__(self, value):
self.value=value
# I would like that the class Foo return False if his value equal 0.
a = Foo(1)
b = Foo(0)
for each in [a,b]:
if each : print( "The value isn't 0 :)" )
else : print( "The value is 0..." )
请您参考如下方法:
对于 Python 3,您需要 __bool__方法。对于 Python 2,您需要 __nonzero__ .
class Foo():
def __init__(self, value):
self.value = value
def __bool__(self):
return self.value != 0
a = Foo(1)
b = Foo(0)
for each in [a,b]:
if each : print( "The value isn't 0 :)" )
else : print( "The value is 0..." )
