[PYTHON] Utilisez Property Decorator?

Lors de la définition d'une propriété en Python, la plupart des exemples ressemblent à ceci:

property1


class Prop1(object):

    @property
    def x(self):
        '''x property'''
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        del self._x

Cependant, seuls les getters peuvent être spécifiés avec ce décorateur de propriété, Même si vous attachez un décorateur de propriété à deleter comme indiqué ci-dessous, deleter n'est pas défini (Setter / getter est défini)

property2


class Prop2(object):

    @property
    def x(self):
        del self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.getter
    def x(self):
        return self._x

Indépendamment du déléteur, il semble oublier lequel du setter et du getter devrait avoir le décorateur de la propriété. D'un autre côté, il est inconfortable d'acheter complètement au revoir avec le décorateur comme suit.

property3


class Prop3(object):

    def getx(self):
        return self._x

    def setx(self, value):
        self._x = value

    def delx(self):
        del self._x

    x = property(getx, setx, delx, 'x property')

Alors, que diriez-vous d'écrire que le décorateur de propriété n'est pas utilisé (utilisé comme une fonction) + le décorateur est utilisé pour spécifier getter / setter / deleter?

property4


class Prop4(object):

    x = property(doc='x property')

    @x.setter
    def x(self, value):
        self._x = value

    @x.getter
    def x(self):
        return self._x

    @x.deleter
    def x(self):
        del self._x

Cependant, on a l'impression de regarder le code source sur le net, et la manière d'écrire avec un décorateur immobilier sur un getter semble majoritaire ...

Recommended Posts

Utilisez Property Decorator?
Faire un décorateur de fonction
Résumez le décorateur @property de Python
Décorer avec un décorateur
[Python] Utiliser une séquence de chaînes
Utiliser Remotte en tant qu'utilisateur
Comment utiliser le décorateur
Créez facilement un profil avec un décorateur
Lorsque vous utilisez la propriété, utilisez une classe qui hérite d'un objet (classe de style nouveau)
Utilisez DynamoDB comme gestionnaire de verrouillage
Utilisez pymol comme bibliothèque python
Décorateur de propriétés [Révisé] qui met en cache les valeurs
Décorateur 1
Utilisez Blender comme module Python
Décorateur 2
Créer un framework de décorateur à usage général pour Python
Décorateur
Utiliser un noyau personnalisé avec WSL2
Décorateur
Créer un décorateur de fonction Python avec Class
Utiliser l'impression dans l'expression lambda Python2
Utiliser un modèle scikit-learn formé à PySpark
Implémenter un décorateur de vue personnalisé avec Pyramid
Ecrire une courte définition de propriété en Python
[IOS] Utilisez des feuilles partagées avec Pythonista3.
Si le Budokan est un immeuble de bureaux de location
Utiliser Django à partir d'un script Python local
Pour rendre une propriété de type dict en lecture seule
Utilisez Python 3 Subprocess.run () dans le script CGI
Utiliser WebDAV dans un environnement Docker portable