Python Language Utiliser le décorateur @property


Exemple

Le décorateur @property peut être utilisé pour définir des méthodes dans une classe qui agissent comme des attributs. Un exemple où cela peut être utile est lorsque vous exposez des informations qui peuvent nécessiter une recherche initiale (coûteuse) et une récupération simple par la suite.

Étant donné un module foobar.py :

class Foo(object):
    def __init__(self):
        self.__bar = None

    @property
    def bar(self):
        if self.__bar is None:
            self.__bar = some_expensive_lookup_operation()
        return self.__bar

alors

>>> from foobar import Foo
>>> foo = Foo()
>>> print(foo.bar)  # This will take some time since bar is None after initialization
42
>>> print(foo.bar)  # This is much faster since bar has a value now
42