From 838c4e9a731abd7208aeed8e931fa398bd31dc44 Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Wed, 19 Feb 2014 18:52:01 +0100 Subject: [PATCH] [attributs] ajout d'un __getattr__ sur Attr renvoyant vers getattr(self.value) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit À 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. --- attributs.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/attributs.py b/attributs.py index cf65fd7..c2620a5 100644 --- a/attributs.py +++ b/attributs.py @@ -277,6 +277,9 @@ class Attr(object): else: return str(self).__hash__() + def __getattr__(self, name): + return super(Attr, self).__getattribute__('value').__getattribute__(name) + def __eq__(self, item): if isinstance(item, self.__class__): return str(self) == str(item)