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

WBOY
Lepaskan: 2023-09-07 22:13:02
ke hadapan
758 orang telah melayarinya

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
Salin selepas log masuk

Kami juga boleh mengembalikan yang berikut dan bukannya Demo.count -

return self.count
Salin selepas log masuk

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
Salin selepas log masuk

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!
      ...
Salin selepas log masuk

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))
Salin selepas log masuk

Output

Student1 Age =  20
Student2 Age =  21
Student3 Age =  22
Student4 Age =  19
True
True
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan