Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk membuat data kelas statik dan kaedah kelas statik dalam Python?

Bagaimana untuk membuat data kelas statik dan kaedah kelas statik dalam Python?

WBOY
WBOYke hadapan
2023-09-07 22:13:02786semak imbas

Bagaimana untuk membuat data kelas statik dan kaedah kelas statik dalam Python?

Python merangkumi konsep data kelas statik dan kaedah kelas statik.

Data 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

Kaedah kelas statik

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

Contoh

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

Output

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam