Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Kaedah Statik dalam Python Berbeza daripada Kaedah Contoh, dan Bagaimana Ia Digunakan?
Memanfaatkan Kaedah Statik Terus daripada Contoh Kelas
Dalam Python, kaedah statik menyediakan pendekatan alternatif untuk mengakses kaedah kelas. Mereka berkelakuan berbeza daripada kaedah contoh kerana mereka tidak memerlukan instantiasi dan boleh diakses terus melalui kelas itu sendiri.
Penciptaan Kaedah Statik
Untuk menentukan kaedah statik , penghias @staticmethod digunakan. Penghias ini mengalih keluar hujah diri daripada tandatangan kaedah, menunjukkan bahawa ia adalah kaedah statik. Contoh kod berikut menunjukkan perkara ini:
class MyClass(object): @staticmethod def the_static_method(x): print(x)
Invokasi Kaedah Statik
Tidak seperti kaedah contoh, kaedah statik boleh digunakan terus pada contoh kelas atau pada kelas sendiri. Coretan kod berikut menggambarkan tingkah laku ini:
MyClass.the_static_method(2) # outputs 2 MyClass().the_static_method(2) # also outputs 2
Perbandingan dengan Definisi Kaedah Statik Warisan
Versi Python yang lebih lama (2.2 dan 2.3) menggunakan pendekatan yang berbeza untuk mentakrifkan kaedah statik, menggunakan kaedah statik sebagai fungsi dan bukannya penghias. Walau bagaimanapun, ini hanya perlu untuk mengekalkan keserasian dengan pelaksanaan Python purba:
class MyClass(object): def the_static_method(x): print(x) the_static_method = staticmethod(the_static_method)
Menjimatkan Penggunaan Kaedah Statik
Adalah penting untuk ambil perhatian bahawa kaedah statik harus digunakan berjimat cermat. Dalam kebanyakan kes, fungsi peringkat atas yang berasingan memberikan penyelesaian yang lebih jelas.
Dokumentasi Rasmi
Dokumentasi Python menerangkan kaedah statik seperti berikut:
Kaedah statik tidak menerima hujah pertama yang tersirat. Untuk mengisytiharkan kaedah statik, gunakan simpulan bahasa ini:
class C: @staticmethod def f(arg1, arg2, ...): ...Borang @staticmethod ialah fungsi penghias – lihat penerangan definisi fungsi dalam Takrifan fungsi untuk butiran.
Ia boleh dipanggil sama ada pada kelas (seperti C.f()) atau pada contoh (seperti C().f()). Contoh itu diabaikan kecuali untuk kelasnya.
Kaedah statik dalam Python adalah serupa dengan yang terdapat dalam Java atau C . Untuk konsep yang lebih lanjut, lihat classmethod().
Untuk mendapatkan maklumat lanjut tentang kaedah statik, rujuk dokumentasi tentang hierarki jenis standard dalam _Hierarki jenis standard_.
Atas ialah kandungan terperinci Bagaimanakah Kaedah Statik dalam Python Berbeza daripada Kaedah Contoh, dan Bagaimana Ia Digunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!