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

不言
Freigeben: 2018-04-21 14:41:25
Original
1925 Leute haben es durchsucht

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()
Nach dem Login kopieren

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!
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!