Maison > développement back-end > Tutoriel Python > Décorateurs et propriété de classe en Python

Décorateurs et propriété de classe en Python

Barbara Streisand
Libérer: 2024-12-24 15:49:12
original
678 Les gens l'ont consulté

Dans cet article, je discuterai de l'utilisation courante des décorateurs de fonctions, en particulier du décorateur de propriétés de classe, ainsi que de la différence entre l'utilisation directe du décorateur ou de la méthode de classe.

Usage

Decorators & Class Property in PythonÇa vous semble familier, n'est-ce pas ?
Le décorateur @propery omniprésent se retrouve partout, mais comment ça marche concrètement ?
Quelles sont les différences entre l'utilisation de @property ou l'utilisation directe de la méthode de classe property() ?

Decorators & Class Property in Python

Comment travaillent les décorateurs ?

Voici un exemple de fonction de décorateur standard.
Decorators & Class Property in Python
Sous le capot de Python, la fonction qui appelle le décorateur (c'est-à-dire la fonction externe) est enveloppée de code supplémentaire en appelant le décorateur et en passant la fonction externe en tant que paramètre. Le décorateur créera une fonction enveloppée avec toute sa nouvelle logique et la renverra comme valeur de la fonction externe.

Comprendre la méthode des propriétés

La méthode de propriété de classe est une fonction Python intégrée qui nous permet de définir des méthodes getter, setter et deleter pour les attributs de classe, et de les lier aux méthodes magiques par défaut de la classe.

def get_my_value(self):
    return self._my_value
my_value = property(get_my_value)
Copier après la connexion

est compris par le compilateur Python comme

def __get__(self,obj):
    return self.fget(obj)
Copier après la connexion

Essentiellement, la méthode property() crée un objet qui agit comme un proxy entre le nom de l'attribut et les données sous-jacentes. Cela nous permet donc d'ajouter un comportement personnalisé et une logique de validation qui ne seraient pas possibles avec les méthodes magiques par défaut.

Le décorateur @property

Comme nous le voyons ci-dessus, la méthode des propriétés nous permet d'écraser la méthode magique par défaut et d'étendre ses fonctionnalités. Nous avons également démontré comment un décorateur enveloppe la logique fonctionnelle dans une nouvelle fonction. Lorsqu'une méthode getter, setter ou deleter est appelée avec le décorateur @property, Python la traduit en un appel à la méthode property() en interne et crée un objet de propriété qui encapsule la méthode dans une fonction qui peut écraser les méthodes magiques par défaut.

Avantages du décorateur

Bien que nous ayons démontré que l'utilisation de la méthode @property decorator ou property() est équivalente, le décorateur propose une utilisation plus simple, et permet au code au sein de la classe d'être plus lisible. Il s'agit donc d'une bonne pratique et d'une convention de codage et le décorateur doit être utilisé sauf s'il existe une exigence spécifique du scénario.

Crédits :

https://www.geeksforgeeks.org/python-property-decorator-property/
Générateur d'images d'en-tête d'article de blog
Créateur d'extraits de code

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:dev.to
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