Heim  >  Artikel  >  Backend-Entwicklung  >  Python implementiert ein Beispiel dafür, wie nur ein Aufruf über attributes_python zugelassen wird

Python implementiert ein Beispiel dafür, wie nur ein Aufruf über attributes_python zugelassen wird

不言
不言Original
2018-04-21 14:41:251964Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn