Slide 25
Slide 25 text
object.__getattribute__ の疑似コード
def object_getattribute (self, key):
"Emulate PyObject_GenericGetAttr() in Objects/object.c"
tp = type(self)
attr = PyType_Lookup(tp, key)
if attr:
if hasattr(attr, '__get__') and hasattr(attr, '__set__'):
# data descriptor
return attr.__get__(self, tp)
if key in self.__dict__:
return self.__dict__[key]
if attr:
if hasattr(attr, '__get__'):
return attr.__get__(self, tp)
return attr
raise AttributeError
データディスクリプタ呼び出し
非データディスクリプタ呼び出し
or クラスの属性辞書参照
インスタンス自身の属性辞書参照