Dalam Python, perbezaan antara kaedah terikat, tidak terikat dan statik adalah penting untuk reka bentuk kelas yang berkesan.
Tidak seperti kebanyakan bahasa berorientasikan objek lain, kaedah kelas Python tidak statik secara lalai. Apabila contoh kelas memanggil fungsi ahli, ia diterjemahkan ke dalam panggilan kepada kaedah tidak terikat dengan contoh sebagai hujah pertama. Sebagai contoh, pertimbangkan kod berikut:
class Test(object): def method_one(self): print "Called method_one"
Memanggil method_one pada contoh a_test akan menghasilkan:
a_test.method_one() => Test.method_one(a_test)
Untuk menentukan kaedah statik yang digunakan pada kelas dan bukannya contoh, gunakan penghias @staticmethod. Penghias ini mengarahkan metaclass untuk mencipta kaedah tidak terikat. Contohnya:
class Test(object): @staticmethod def method_two(): print "Called method_two"
Kini, kedua-dua contoh dan kelas boleh menggunakan method_two:
a_test = Test() a_test.method_one() a_test.method_two() Test.method_two()
Memanggil method_two tanpa instance tidak akan menimbulkan ralat, tidak seperti method_one, yang menjangkakan contoh untuk terikat kepadanya.
Atas ialah kandungan terperinci Apakah Perbezaan antara Kaedah Terikat, Tidak Terikat dan Statik dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!