[attributs] ajout d'un __getattr__ sur Attr renvoyant vers getattr(self.value)

À noter que __getattr__ n'est appelé que si l'attribut n'existe pas déjà.
Ça permet d'utiliser l'objet Attr comme sa valeur pour la plupart des opération
de lecture simple.
J'ai fait exprès de ne pas surcharger __setattr__, parce que sinon, on ne sait
plus trop ce qui va être affecté. J'estime que les écriture doivent être traités au
cas par cas comme pour blacklist ou pour article.
This commit is contained in:
Valentin Samir 2014-02-19 18:52:01 +01:00
parent 6e6f87bf40
commit 838c4e9a73

View file

@ -277,6 +277,9 @@ class Attr(object):
else: else:
return str(self).__hash__() return str(self).__hash__()
def __getattr__(self, name):
return super(Attr, self).__getattribute__('value').__getattribute__(name)
def __eq__(self, item): def __eq__(self, item):
if isinstance(item, self.__class__): if isinstance(item, self.__class__):
return str(self) == str(item) return str(self) == str(item)