Rumah > Artikel > pembangunan bahagian belakang > Apakah Perbezaan Antara Kaedah Kelas Terikat, Tidak Terikat dan Statik dalam Python?
Dalam Python, kaedah kelas boleh dikategorikan kepada tiga jenis: terikat, tidak terikat dan statik. Memahami perbezaan antara jenis ini adalah penting untuk reka bentuk kelas yang berkesan dan interaksi objek.
Kaedah terikat dikaitkan dengan contoh tertentu kelas. Apabila dipanggil, hujah pertama terikat secara automatik kepada contoh panggilan. Ini membenarkan akses kepada atribut dan kaedah khusus contoh dalam pelaksanaan kaedah. Dalam contoh yang disediakan, method_one ialah kaedah terikat:
class Test(object): def method_one(self): print("Called method_one")
Apabila dipanggil melalui contoh, kaedah terikat berkelakuan seperti yang diharapkan:
a_test = Test() a_test.method_one() # Output: Called method_one
Tidak terikat kaedah tidak dikaitkan dengan mana-mana contoh khusus kelas. Apabila dipanggil, hujah pertama tidak terikat secara automatik pada contoh, dan mereka tidak boleh mengakses data khusus contoh. Dalam contoh, method_two ialah kaedah tidak terikat:
class Test(object): def method_two(): print("Called method_two")
Percubaan untuk menggunakan kaedah tidak terikat melalui kejadian mengakibatkan TypeError kerana tiada tika disediakan:
a_test = Test() a_test.method_two() # Error: TypeError: method_two() takes no arguments (1 given)
Kaedah statik tidak dikaitkan dengan mana-mana contoh atau kelas dan berkelakuan seperti fungsi biasa. Mereka boleh diakses terus dari kelas atau menggunakan contoh, tetapi mereka tidak mempunyai akses yang wujud kepada data khusus contoh. Kaedah statik biasanya digunakan untuk fungsi utiliti atau operasi peringkat kelas:
class Test(object): @staticmethod def method_two(): print("Called method_two")
Kaedah statik boleh digunakan pada kejadian dan kelas itu sendiri:
a_test = Test() a_test.method_two() # Output: Called method_two Test.method_two() # Output: Called method_two
Atas ialah kandungan terperinci Apakah Perbezaan Antara Kaedah Kelas Terikat, Tidak Terikat dan Statik dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!