Python umfasst die Konzepte statischer Klassendaten und statischer Klassenmethoden.
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
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! ...
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))
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!