Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erstelle ich statische Klassendaten und statische Klassenmethoden in Python?

Wie erstelle ich statische Klassendaten und statische Klassenmethoden in Python?

WBOY
WBOYnach vorne
2023-09-07 22:13:02699Durchsuche

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

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

return self.count

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

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!
      ...

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))

Ausgabe

Student1 Age =  20
Student2 Age =  21
Student3 Age =  22
Student4 Age =  19
True
True

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen