Python Language Utilisation du décorateur @property pour les propriétés en lecture-écriture


Exemple

Si vous souhaitez utiliser @property pour implémenter un comportement personnalisé pour définir et obtenir, utilisez ce modèle:

class Cash(object):
    def __init__(self, value):
        self.value = value
    @property
    def formatted(self):
        return '${:.2f}'.format(self.value)
    @formatted.setter
    def formatted(self, new):
        self.value = float(new[1:])

Pour utiliser ceci:

>>> wallet = Cash(2.50)
>>> print(wallet.formatted)
$2.50
>>> print(wallet.value)
2.5
>>> wallet.formatted = '$123.45'
>>> print(wallet.formatted)
$123.45
>>> print(wallet.value)
123.45