Lorsque vous utilisez la propriété, utilisez une classe qui hérite d'un objet (classe de style nouveau)

Si ce n'est pas une classe de style nouveau

class Hoge:
    def __init__(self):
        self._x = 1

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

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

a = Hoge()
print a.x

a.x = 2
print a.x

résultat##

property 1
1
2

Pour la classe de nouveau style

class Hoge(object):
    def __init__(self):
        self._x = 1

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

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

a = Hoge()
print a.x

a.x = 2
print a.x

résultat##

property 1
1
setter
property 2
2

référence##

Recommended Posts

Lorsque vous utilisez la propriété, utilisez une classe qui hérite d'un objet (classe de style nouveau)
Utilisez Property Decorator?
Utilisez une macro qui s'exécute lors de l'enregistrement de python avec vscode
Utilisez configparser lors de l'utilisation de l'API
J'ai un TypeError: l'objet 'int' n'est pas itérable lors de l'utilisation de keras
L'histoire de l'erreur de hachage est apparue lors de l'utilisation de Pipenv
Un mémorandum jusqu'à l'utilisation de mecab sur une machine qui ne peut pas utiliser sudo
J'obtiens un attribut impossible à définir lors de l'utilisation de @property en python
Un mémorandum lors de l'utilisation d'une belle soupe
[Note] Importance que __unicode__ est nécessaire lors de la définition de la classe de modèle de Django
Connaissance lors de la création d'un bot en utilisant discord.py
Un programme qui utilise Python pour lire des fichiers indésirables