Rumah > Artikel > pembangunan bahagian belakang > Apakah perbezaan antara kaedah tidak terikat, terikat dan statik dalam kelas Python?
Perbezaan Kaedah Kelas dalam Python: Tidak terikat, Terikat dan Statik
Dalam Python, kaedah kelas boleh dikategorikan kepada tiga jenis: tidak terikat, terikat, dan statik. Memahami perbezaan mereka adalah penting untuk pengaturcaraan berorientasikan objek yang berkesan.
Kaedah Terikat
Kaedah terikat ialah kaedah yang memerlukan instance kelas sebagai hujah pertama apabila digunakan. Contohnya, kaedah method_one dalam kod berikut ialah kaedah terikat:
class Test(object): def method_one(self): print "Called method_one"
Untuk memanggil kaedah terikat, instance kelas mesti disediakan. Contohnya:
a_test = Test() a_test.method_one()
Kaedah Tidak Terikat
Kaedah tidak terikat pada asasnya ialah kaedah kelas yang belum terikat pada tika kelas. Dalam Python, semua kaedah kelas pada mulanya tidak terikat. Contohnya, kaedah method_two dalam coretan kod di bawah ialah kaedah tidak terikat:
class Test(object): def method_two(): print "Called method_two"
Kaedah tidak terikat tidak boleh dipanggil terus pada kejadian kelas. Sebaliknya, mereka mesti terikat kepada contoh sebelum dipanggil. Ini boleh dicapai dengan menggunakan nama kelas sebagai hujah pertama, seperti yang ditunjukkan di bawah:
Test.method_two()
Kaedah Statik
Kaedah statik ialah kaedah yang tidak terikat kepada contoh kelas dan tidak memerlukan contoh sebagai hujah pertama. Ia diisytiharkan menggunakan penghias @staticmethod. Contohnya:
class Test(object): @staticmethod def method_three(): print "Called method_three"
Kaedah statik boleh dipanggil terus pada kelas atau pada tika kelas. Contohnya:
Test.method_three() a_test = Test() a_test.method_three()
Ringkasan
Ringkasnya, perbezaan utama antara kaedah kelas dalam Python terletak pada status mengikatnya. Kaedah terikat memerlukan contoh sebagai hujah pertama, kaedah tidak terikat mesti terikat pada contoh sebelum digunakan dan kaedah statik tidak terikat pada kejadian dan tidak memerlukan contoh sebagai hujah.
Atas ialah kandungan terperinci Apakah perbezaan antara kaedah tidak terikat, terikat dan statik dalam kelas Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!