Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Kaedah Statik dalam Python Berbeza daripada Kaedah Contoh, dan Bagaimana Ia Digunakan?

Bagaimanakah Kaedah Statik dalam Python Berbeza daripada Kaedah Contoh, dan Bagaimana Ia Digunakan?

Linda Hamilton
Linda Hamiltonasal
2024-12-05 01:12:11400semak imbas

How Do Static Methods in Python Differ from Instance Methods, and How Are They Invoked?

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!

Kenyataan:
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