Python merangkumi konsep data kelas statik dan kaedah kelas statik.
Di sini, tentukan atribut kelas untuk data kelas statik. Jika anda ingin menetapkan nilai baharu pada harta, gunakan nama kelas secara eksplisit dalam tugasan -
class Demo: count = 0 def __init__(self): Demo.count = Demo.count + 1 def getcount(self): return Demo.count
Kami juga boleh mengembalikan yang berikut dan bukannya Demo.count -
return self.count
Dalam kaedah Demo, tugasan seperti self.count = 42 mencipta contoh baharu yang tidak berkaitan bernama kiraan dalam kamus sendiri. Penggabungan semula nama data statik kelas mesti sentiasa menentukan kelas, sama ada di dalam kaedah atau tidak -
Demo.count = 314
Mari kita lihat cara kaedah statik berfungsi. Kaedah statik terikat pada kelas dan bukannya objek kelas. Kaedah status digunakan untuk mencipta fungsi utiliti.
Kaedah statik tidak boleh mengakses atau mengubah suai keadaan kelas. Kaedah statik tidak mempunyai pengetahuan tentang keadaan kelas. Kaedah ini digunakan untuk melaksanakan beberapa tugas praktikal dengan mendapatkan beberapa parameter.
Ingat, @staticmethod decorator digunakan untuk mencipta kaedah statik seperti yang ditunjukkan di bawah -
class Demo: @staticmethod def static(arg1, arg2, arg3): # No 'self' parameter! ...
Mari kita lihat contoh lengkap -
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
Atas ialah kandungan terperinci Bagaimana untuk membuat data kelas statik dan kaedah kelas statik dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!