Ответ 1
Чтобы определить метод __bool__
используемый классом, а не его экземпляры, вам необходимо изменить его класс. Вы делаете это, написав метакласс.
class FalseMeta(type):
def __bool__(self):
return False
class MyClass(metaclass=FalseMeta):
pass
print(bool(MyClass)) # False