Class 那 returns False with bool(TheClassItself)
Class that returns False with bool(TheClassItself)
我想创建一个 class MyClass
,其中 bool(MyClass)
returns False
。可能吗?
我想要 class 本身的这种行为,而不是 class 的对象。对于 class 的对象,我知道我可以 return False
in __bool__(self)
.
要定义 class 使用的 __bool__
方法,而不是它的实例,您需要修改 its class。您可以通过编写 metaclass.
来做到这一点
class FalseMeta(type):
def __bool__(self):
return False
class MyClass(metaclass=FalseMeta):
pass
print(bool(MyClass)) # False
我想创建一个 class MyClass
,其中 bool(MyClass)
returns False
。可能吗?
我想要 class 本身的这种行为,而不是 class 的对象。对于 class 的对象,我知道我可以 return False
in __bool__(self)
.
要定义 class 使用的 __bool__
方法,而不是它的实例,您需要修改 its class。您可以通过编写 metaclass.
class FalseMeta(type):
def __bool__(self):
return False
class MyClass(metaclass=FalseMeta):
pass
print(bool(MyClass)) # False