Wie erstelle ich statische Klassendaten und statische Klassenmethoden in Python?

WBOY
Freigeben: 2023-09-07 22:13:02
nach vorne
758 Leute haben es durchsucht

Wie erstelle ich statische Klassendaten und statische Klassenmethoden in Python?

Python umfasst die Konzepte statischer Klassendaten und statischer Klassenmethoden.

Statische Klassendaten

Hier definieren Sie ein Klassenattribut für statische Klassendaten. Wenn Sie einer Eigenschaft einen neuen Wert zuweisen möchten, verwenden Sie in der Zuweisung explizit den Klassennamen -

class Demo:
   count = 0
   
   def __init__(self):
      Demo.count = Demo.count + 1
   
   def getcount(self):
      return Demo.count
Nach dem Login kopieren

Wir können anstelle von Demo.count auch Folgendes zurückgeben -

return self.count
Nach dem Login kopieren

In der Demo-Methode erstellt eine Zuweisung wie self.count = 42 eine neue, nicht verwandte Instanz mit dem Namen count im eigenen Wörterbuch von self. Beim erneuten Binden statischer Klassendatennamen muss immer die Klasse angegeben werden, unabhängig davon, ob sie sich innerhalb einer Methode befindet oder nicht -

Demo.count = 314
Nach dem Login kopieren

Statische Klassenmethode

Sehen wir uns an, wie statische Methoden funktionieren. Statische Methoden sind an eine Klasse und nicht an ein Objekt der Klasse gebunden. Die Statusmethode wird zum Erstellen von Dienstprogrammfunktionen verwendet.

Statische Methoden können nicht auf den Klassenstatus zugreifen oder ihn ändern. Statische Methoden kennen den Klassenstatus nicht. Diese Methoden werden verwendet, um einige praktische Aufgaben durch Abrufen einiger Parameter auszuführen.

Denken Sie daran, dass der @staticmethod-Dekorator zum Erstellen statischer Methoden verwendet wird, wie unten gezeigt -

class Demo:
   @staticmethod
   def static(arg1, arg2, arg3):
      # No 'self' parameter!
      ...
Nach dem Login kopieren

Beispiel

Sehen wir uns ein vollständiges Beispiel an -

from datetime import date
class Student:
   def __init__(self, name, age):
      self.name = name
      self.age = age

   # A class method
   @classmethod
   def birthYear(cls, name, year):
      return cls(name, date.today().year - year)

   # A static method
   # If a Student is over 18 or  not
   @staticmethod
   def checkAdult(age):
      return age > 18

# Creating 4 objects
st1 = Student('Jacob', 20)
st2 = Student('John', 21)
st3 = Student.birthYear('Tom', 2000)
st4 = Student.birthYear('Anthony', 2003)

print("Student1 Age = ",st1.age)
print("Student2 Age = ",st2.age)
print("Student3 Age = ",st3.age)
print("Student4 Age = ",st4.age)

# Display the result
print(Student.checkAdult(22))
print(Student.checkAdult(20))
Nach dem Login kopieren

Ausgabe

Student1 Age =  20
Student2 Age =  21
Student3 Age =  22
Student4 Age =  19
True
True
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erstelle ich statische Klassendaten und statische Klassenmethoden in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
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