Maison > développement back-end > Tutoriel Python > Comment puis-je implémenter pythoniquement les getters et les setters ?

Comment puis-je implémenter pythoniquement les getters et les setters ?

Susan Sarandon
Libérer: 2024-12-14 17:46:11
original
827 Les gens l'ont consulté

How Can I Pythonically Implement Getters and Setters?

Quelle est la manière pythonique d'utiliser les getters et les setters ?

L'utilisation des getters et des setters offre un moyen pratique de contrôler l'accès aux attributs privés en Python . Voici quelques-unes des approches couramment utilisées :

Approche basée sur la méthode :

Vous pouvez créer des méthodes getter et setter distinctes, comme indiqué ci-dessous :

def set_property(property, value):  
def get_property(property): 
Copier après la connexion

Cependant, cette approche n’est pas considérée comme très pythonique. Une méthode plus préférable consiste à utiliser :

Manipulation des attributs d'objet :

Vous pouvez attribuer directement des valeurs aux attributs d'objet en utilisant la notation par points :

object.property = value  
value = object.property
Copier après la connexion

Cette approche est facile à utiliser et à comprendre, mais elle n'offre aucune encapsulation ni contrôle sur les attributs accès.

Propriétés Python :

La manière la plus pythonique d'implémenter les getters et les setters est d'utiliser des propriétés. Cela vous permet de définir les méthodes getter, setter et deleter dans une seule ligne de code :

class C(object):
    @property
    def x(self):
        """I'm the 'x' property."""
        print("getter of x called")
        return self._x

    @x.setter
    def x(self, value):
        print("setter of x called")
        self._x = value

    @x.deleter
    def x(self):
        print("deleter of x called")
        del self._x

c = C()
c.x = 'foo'  # setter called
foo = c.x    # getter called
del c.x      # deleter called
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal