hasattr 调用哪个魔术方法?

Sim*_*che 4 python methods

调用哪个魔术方法hasattr?

getattr(__o, name)也可以称为__o.__getattr__(name)

setattr(__o, name)也可以称为__o.__setattr__(name)

但 相当于什么hasattr?

我知道关键字的关联魔法方法in是__contains__。

Bar*_*mar 5

没有具体的 dunder 方法hasattr()。它本质上相当于:

def hasattr(object, name):
    try:
        getattr(object, name)
        return True
    except AttributeError:
        return False
Run Code Online (Sandbox Code Playgroud)

因此它依赖于getattr().