Das Folgende ist ein Beispiel dafür, wie Python nur einmal über Attribute aufgerufen werden kann. Es hat einen guten Referenzwert und ich hoffe, dass es für alle hilfreich ist. Schauen wir uns das gemeinsam an
Wenn ich möchte, dass eine bestimmte Methode eines Objekts nur einmal aufgerufen wird, muss ich nach meinem bisherigen Trägheitsdenken eine Zustandsvariable definieren und deren Wert bei jedem Aufruf ändern. Indem ich mir den Wert der Zustandsgröße ansehe, kann ich entscheiden, eine andere Verarbeitung durchzuführen.
Tatsächlich gibt es darüber hinaus noch eine andere Methode, die nicht nur eine solche Verarbeitung erreichen, sondern auch die Eigenschaften des Objekts verarbeiten kann.
Schauen Sie sich zunächst den folgenden Code an:
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()
Die Ergebnisse der Programmausführung lauten wie folgt:
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!
Aus den obigen Ergebnissen können wir erkennen, dass die von uns beschriebene Funktion funktioniert wurde auf diese Weise umgesetzt!
Den oben genannten Attributen sind Standardwerte zugewiesen. Natürlich können wir sie auch in die Form mit zugewiesenen Werten ändern:
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)
Das Ausführungsergebnis des Programms ist wie folgt:
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!
Verwandte Empfehlungen:
Python begrenzt die Anzahl der Funktionsaufrufe
Das obige ist der detaillierte Inhalt vonPython implementiert ein Beispiel dafür, wie nur ein Aufruf über attributes_python zugelassen wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!