J'ai utilisé avec succès les propriétés Python, mais je ne vois pas comment elles pourraient fonctionner. Si je déréférence une propriété en dehors d'une classe, je viens d'obtenir un objet de type property
:
>>> @property
... def hello(): return "Hello, world!"
...
>>> hello
<property object at 0x9870a8>
Mais si je mets une propriété dans une classe, le comportement est très différent:
>>> class Foo(object):
... @property
... def hello(self): return "Hello, world!"
...
>>> Foo().hello
'Hello, world!'
J'ai remarqué que Foo.hello
non lié est toujours l'objet property
, donc l'instanciation de classe doit faire la magie, mais quelle magie est-ce?