Rumah > pembangunan bahagian belakang > Tutorial Python > Kaedah Terikat, Tidak Terikat dan Statik dalam Python: Apakah Perbezaannya?

Kaedah Terikat, Tidak Terikat dan Statik dalam Python: Apakah Perbezaannya?

Barbara Streisand
Lepaskan: 2024-11-17 18:52:02
asal
824 orang telah melayarinya

Bound, Unbound, and Static Methods in Python: What's the Difference?

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()
Salin selepas log masuk

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) 
Salin selepas log masuk

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"
Salin selepas log masuk

Dengan kaedah statik, invokasi boleh dilakukan pada kedua-dua kejadian objek dan kelas itu sendiri:

a_test.method_two()
Test.method_two()
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan