在自定义类中实现了 _ _ 或 _ _ 方法?所以当我实例化一个新类时,我可以使用
if myobject:
return True
或
if not myobject:
return False
答案 0 :(得分:3)
如果你想要的是将你的类的实例用作布尔值,即你的类的某些实例是真实的而有些是假的,那么,在你的类中,适当地定义__nonzero__
。
参见docs
中的第5.1节默认情况下,说
if myobject:
其中myobject
是某个类的实例,将像您编写
if True:
定义__nonzero__()
允许您自定义在布尔上下文中使用对象的方式(可以这么说)。
对于Python 3,情况有所不同。请参阅this SO question。