Maison  >  Article  >  développement back-end  >  Python implémente un exemple d'autorisation d'un seul appel via attributs_python

Python implémente un exemple d'autorisation d'un seul appel via attributs_python

不言
不言original
2018-04-21 14:41:251964parcourir

Ce qui suit est un exemple de la façon dont Python ne peut être appelé qu'une seule fois via des attributs. Il a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde. Jetons un coup d'oeil ensemble

Si je veux qu'une certaine méthode d'un objet ne soit appelée qu'une seule fois, selon ma pensée inertielle précédente, je dois définir une variable d'état et modifier sa valeur à chaque fois qu'elle est appelée. En regardant la valeur de la quantité d'état, je peux décider d'effectuer différents traitements.

En fait, il existe une autre méthode en plus de celle-ci, qui peut non seulement réaliser un tel traitement, mais également traiter les propriétés de l'objet.

Regardez d'abord le code suivant :

class DemoClass:
  def __init__(self):
    pass
  def AttrCheck(self):
    try:
      self.value
      print("already hasvalue")
      raise ValueAttrError
    except AttributeError:
      self.value = 0
      print(self.value)
 
obj = DemoClass()
obj.AttrCheck()
obj.AttrCheck()

Les résultats de l'exécution du programme sont les suivants :

grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08$python attr1.py
0
already has value
Traceback (mostrecent call last):
 File "attr1.py", line 15, in<module>
 obj.AttrCheck()
 File "attr1.py", line 8, inAttrCheck
 raiseRuntimeError("multi-excued!")
RuntimeError:multi-excued!

D'après les résultats ci-dessus, nous pouvons voir que la fonction que nous avons décrite a été mis en œuvre de cette manière !

Les attributs ci-dessus se voient attribuer des valeurs par défaut. Bien sûr, nous pouvons également les modifier sous la forme avec des valeurs attribuées :

.
class DemoClass:
  def __init__(self):
    pass
  def AttrCheck(self,value):
    try:
      self.value
      print("already hasvalue")
      raiseRuntimeError("multi-excued!")
    except AttributeError:
      self.value = value
      print(self.value)
 
obj = DemoClass()
obj.AttrCheck(123)
obj.AttrCheck(123)

Les résultats d'exécution du programme sont les suivants :

grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08$python attr1.py
123
already has value
Traceback (mostrecent call last):
 File "attr1.py", line 15, in<module>
 obj.AttrCheck(123)
 File "attr1.py", line 8, in AttrCheck
 raiseRuntimeError("multi-excued!")
RuntimeError:multi-excued!

Recommandations associées :

Python limite le nombre d'appels de fonctions

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!

Déclaration:
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