Python,为“ if object”语句调用哪种魔术方法

时间:2018-08-22 08:31:50

标签: python

我有一个问题,我在测试期间也找不到答案。 方法 pos neg 对我不起作用。

假设我们有一个简单的类:

class Test:
def __init__(self,
             param=False):
    self.param = param

if __name__ == '__main__':
    c = Test()
    if c:  # which Python magic method is invoked here?
        print("OK")
    else:
        print("Nok")

现在,我想重写在执行语句时调用的魔术方法:

  

如果c:

但是我不知道哪个?请征求意见。

1 个答案:

答案 0 :(得分:2)

__bool__()(如果已定义
参见https://docs.python.org/3/library/stdtypes.html

默认情况下,对象解析为True