首页 > 解决方案 > Python,为“if object”语句调用了哪个魔术方法

问题描述

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

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

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:

但不知道是哪个?请指教。

标签: python

解决方案


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

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


推荐阅读