1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
def __getattribute__(self,x):
classe = type(self)
x_dans_classe = classe.__dict__.get(x,null)
if x == "__dict__" and x_dans_classe is null:
raise AttributeError
desc = type(x_dans_classe)
desc_get = getattr(desc,"__get__",null)
if desc_get is not null and (hasattr(desc,"__set__") or hasattr(desc,"__delete__")):
return desc_get(x_dans_classe,self,classe)
dico = getattr(self,"__dict__",{})
if x in dico:
return dico[x]
if desc_get is not null:
return desc_get(x_dans_classe,self,classe)
if x_dans_classe is not null:
return x_dans_classe
raise AttributeError |
Partager