Perbezaan Kaedah Kelas dalam Python: Meneroka Kaedah Terikat, Tidak Terikat dan Statik
Dalam Python, memahami perbezaan antara kaedah kelas adalah penting untuk pengaturcaraan berorientasikan objek yang berkesan. Di antara pelbagai jenis kaedah kelas, kaedah terikat, tidak terikat dan statik mempunyai kepentingan tertentu. Artikel ini menyelidiki perbezaan utamanya dan kesannya terhadap penggunaan kaedah dalam Python.
Kaedah Terikat
Kaedah terikat ialah jenis kaedah standard yang dikaitkan dengan objek. Apabila objek dijadikan instantiated, kaedah terikat dicipta secara automatik untuk kaedahnya. Parameter pertama kaedah terikat mewakili rujukan objek yang kaedah digunakan. Ini membolehkan akses kepada pembolehubah contoh objek dan kaedah lain. Dalam contoh yang disediakan, fungsi method_one ialah kaedah terikat, dan pemanggilannya memerlukan rujukan objek seperti yang ditunjukkan:
a_test.method_one()
Kaedah Tidak Terikat
Kaedah tidak terikat bukan dikaitkan dengan mana-mana objek tertentu. Mereka tidak mempunyai parameter diri, kerana mereka tidak bertujuan untuk bekerja pada keadaan tertentu. Memanggil kaedah tidak terikat memerlukan pemindahan eksplisit objek sebagai hujah pertama. Dalam coretan kod contoh, method_two ialah kaedah tidak terikat dan penggunaannya menimbulkan ralat tanpa hujah yang diberikan:
a_test.method_two() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: method_two() takes no arguments (1 given)
Kaedah Statik
Kaedah statik adalah serupa kepada kaedah yang tidak terikat kerana ia tidak dikaitkan dengan mana-mana objek tertentu. Walau bagaimanapun, tidak seperti kaedah tidak terikat, kaedah statik tidak menerima rujukan objek sebagai parameter dan oleh itu tidak bergantung pada keadaan contoh. Untuk mengisytiharkan kaedah statik, penghias seperti @staticmethod digunakan. Penghias ini memberitahu metaclass bahawa kaedah itu tidak seharusnya mencipta kaedah terikat untuk kelas.
class Test(object): @staticmethod def method_two(): print "Called method two"
Dengan kaedah statik, invokasi boleh dilakukan pada kedua-dua kejadian objek dan kelas itu sendiri:
a_test.method_two() Test.method_two()
Dengan memahami perbezaan halus antara kaedah terikat, tidak terikat dan statik, pembangun boleh memanfaatkan kuasa keupayaan berorientasikan objek Python dengan berkesan, membawa kepada reka bentuk kod yang lebih mantap dan fleksibel.
Atas ialah kandungan terperinci Kaedah Terikat, Tidak Terikat dan Statik dalam Python: Apakah Perbezaannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!