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