Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Memanggil Kaedah Kelas Induk dari Kelas Kanak-kanak dalam Python?

Bagaimanakah Saya Memanggil Kaedah Kelas Induk dari Kelas Kanak-kanak dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-12-08 13:59:14395semak imbas

How Do I Call Parent Class Methods from Child Classes in Python?

Memanggil Kaedah Kelas Induk dalam Kelas Kanak-Kanak Python

Apabila mentakrifkan hierarki kelas dalam Python, adalah penting untuk mengetahui cara mengakses kaedah kelas induk daripada kelas terbitan. Dalam bahasa seperti Perl dan Java, kata kunci "super" memudahkan ini, tetapi dalam Python, terdapat pendekatan yang kelihatan berbeza.

Memperkenalkan Fungsi super()

Untuk gunakan kaedah kelas induk daripada kelas anak dalam Python, gunakan fungsi super(). Fungsi ini membolehkan anda mengakses atribut dan kaedah kelas induk tanpa menyatakan secara eksplisit nama kelas induk.

class Foo(Bar):
    def baz(self, **kwargs):
        return super().baz(**kwargs)

Dalam contoh di atas, kelas Foo ialah anak kelas Bar. Di dalam kaedah baz kelas Foo, super() digunakan untuk memanggil kaedah baz kelas Bar induk.

Memilih masuk ke Kelas Gaya Baharu (Python 2 sahaja)

Dalam Python 2, anda mesti memilih secara eksplisit menggunakan kelas gaya baharu untuk menggunakan fungsi super(). Untuk melakukan ini, isytiharkan kelas induk menggunakan kata kunci super:

class Foo(Bar):
    def baz(self, arg):
        return super(Foo, self).baz(arg)

Dengan menerima fungsi super(), anda memudahkan pangkalan kod anda, mengurangkan gandingan antara kelas dan meningkatkan kebolehselenggaraan hierarki kelas mendalam anda dalam Ular sawa.

Atas ialah kandungan terperinci Bagaimanakah Saya Memanggil Kaedah Kelas Induk dari Kelas Kanak-kanak dalam 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