hasattr
调用哪个魔术方法?
getattr(__o, name)
也可以称为__o.__getattr__(name)
setattr(__o, name)
也可以称为__o.__setattr__(name)
但是hasattr
的类似功能是什么呢?
我知道与in
关键字相关的魔术方法是__contains__
.
hasattr
调用哪个魔术方法?
getattr(__o, name)
也可以称为__o.__getattr__(name)
setattr(__o, name)
也可以称为__o.__setattr__(name)
但是hasattr
的类似功能是什么呢?
我知道与in
关键字相关的魔术方法是__contains__
.
对于hasattr()
,没有特定的DUnder方法.它本质上等同于:
def hasattr(object, name):
try:
getattr(object, name)
return True
except AttributeError:
return False
因此,它依赖于getattr()
所使用的相同的DUnder方法.