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!