Dans la programmation orientée objet, chaque attribut d'une classe peut avoir trois méthodes de base:
Cependant, la vie n'est pas aussi facile que l'exemple ci-dessus. Comment pouvons-nous gérer la mauvaise entrée comme Yang._score = -10ou Yang._score = 99999?
Une bonne idée est d'écrire une fonction de réglage pour que le self._scorevérifie la valeur d'entrée.
Cela a l'air bien, mais nous pouvons toujours définir une valeur invalide directement:
Si nous utilisons la set_score() fonction, la validité de la valeur sera vérifiée. Mais si nous oublions de l'utiliser et de toujours définir les valeurs directement, aucune validation ne peut être assurée.
Par conséquent, nous ne pouvons toujours pas garantir totalement que la valeur de self._scoreest toujours valide. Sans parler de définir une valeur par une méthode n'est pas aussi pratique que de la définir directement. C'est là que le décorateur immobilier vient à la rescousse.
Modifions la Studentclasse comme ceci:
Comme le code ci-dessus le montre, après avoir utilisé le @propertydécorateur, nous pouvons à la fois définir la valeur directement et en assurer la validité. Le décorateur de propriété est un mécanisme très utile et largement utilisé dans les classes Python. Cela nous aide à appeler les méthodes getter, setter et deleter directement par l'attribut.
Un modèle courant pour utiliser le décorateur de propriété est:
Remarque: les noms des méthodes getter, setter et deleter doivent être identiques. Le meilleur choix est d'utiliser le nom de l'attribut.
La propriété n'est qu'un décorateur intégré en Python. Par conséquent, comme d'autres décorateurs, nous pouvons l'utiliser d'une autre manière:
La property(fget=None,fset=None,fdel=None,doc=None)fonction a quatre paramètres:
Comme nous le savons, il existe trois méthodes (getter, setter et deleter) que nous pouvons définir par le décorateur de propriété. Si l'une des trois méthodes n'est pas définie, nous ne pouvons pas utiliser cette méthode. Par conséquent, nous pouvons utiliser habilement le décorateur de propriété pour définir un attribut en lecture seule. Par exemple:
Comme le montre l'exemple ci-dessus, nous ne définissons pas la méthode setter de score, donc scorene peut pas être définie. En d'autres termes, c'est un attribut en lecture seule. Il s'agit d'un scénario d'utilisation important du décorateur immobilier.
Le décorateur de propriété est un outil puissant et largement utilisé dans les classes Python. Cela nous permet d'écrire du code concis tout en assurant les vérifications nécessaires sur les paramètres, afin que la possibilité d'erreurs soit réduite.
Merci d'avoir lu. Plus de didacticiels Python:
Le tutoriel ultime sur Python (mise à jour continue)
Lorsque vous faites une demande à facebook.com, votre ordinateur recherche le nom de domaine pour traduire ce nom de domaine en une adresse IP afin que votre ordinateur puisse établir cette connexion.
Vous devez avoir entendu parler de tous les nouveaux plugins ChatGPT puissants comme le navigateur, l'interpréteur de code, etc. Mais il y a un problème, l'accès aux plugins est limité à une liste d'attente et donc beaucoup n'y ont pas accès.
[Alerte de déclenchement : cet essai comprend des captures d'écran de personnes faisant l'éloge du meurtrier de Jordan Neely.] Les responsables de l'application des lois ont finalement - et peut-être à contrecœur - inculpé Daniel Penny, l'homme qui a étouffé Jordan Neely jusqu'à sa mort, pour cet homicide.
Dans le monde interconnecté d'aujourd'hui, la menace des cyberattaques est plus répandue que jamais. Les cybercriminels et les acteurs des États-nations cherchent constamment à exploiter les vulnérabilités et à voler des données précieuses, ce qui représente un risque important pour les organisations de toutes tailles.
Si nous voulons continuer à prospérer sur cette planète, nous allons devoir avoir des conversations dangereuses. Celles qui remettent en question ce que nous avons fait, ce que nous faisons et ce que nous sommes actuellement sur le point de continuer à faire (ou prévoyons de faire).
La démangeaison dans ma main s'est propagée alors que je négociais avec le libraire local pour un autre livre. Ce livre, comme les autres que j'ai achetés récemment, trouverait son trône sur ma pile «À lire» (TBR); et pourtant, je l'ai acheté.