Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah perbezaan antara kaedah tidak terikat, terikat dan statik dalam kelas Python?

Apakah perbezaan antara kaedah tidak terikat, terikat dan statik dalam kelas Python?

Linda Hamilton
Linda Hamiltonasal
2024-11-13 00:24:02300semak imbas

What are the differences between unbound, bound, and static methods in Python classes?

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!

Kenyataan:
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