Rumah > pembangunan bahagian belakang > Tutorial Python > 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
Lepaskan: 2024-11-13 00:24:02
asal
362 orang telah melayarinya

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

Untuk memanggil kaedah terikat, instance kelas mesti disediakan. Contohnya:

a_test = Test()
a_test.method_one()
Salin selepas log masuk

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

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

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

Kaedah statik boleh dipanggil terus pada kelas atau pada tika kelas. Contohnya:

Test.method_three()
a_test = Test()
a_test.method_three()
Salin selepas log masuk

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!

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