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

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

Mary-Kate Olsen
Lepaskan: 2024-12-03 14:14:16
asal
731 orang telah melayarinya

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

Memanfaatkan Kaedah Kelas Induk daripada Kelas Anak dalam Python

Apabila mereka bentuk hierarki objek, selalunya perlu menggunakan kaedah daripada kelas induk dalam kelas terbitan. Dalam bahasa seperti Perl dan Java, kata kunci "super" memudahkan perkara ini. Walau bagaimanapun, dalam Python, pendekatannya nampaknya berbeza.

Rujukan Kelas Induk Eksplisit

Dalam Python, nampaknya menamakan kelas induk secara eksplisit adalah satu-satunya cara untuk memanggil kaedahnya dari kanak-kanak. Contohnya, jika kelas induk Foo mengandungi kaedah frotz, Bar kelas anak perlu merujuknya sebagai Foo::frotz().

Batasan dan Kebimbangan

Pendekatan ini boleh menimbulkan cabaran dalam hierarki yang kompleks di mana kanak-kanak mungkin tidak selalu mengetahui kelas yang menentukan kaedah yang diwarisi. Ini boleh membawa kepada isu penyelenggaraan dan kebolehbacaan.

Fungsi Super()

Nasib baik, Python 2.2 dan kemudiannya memperkenalkan fungsi super() untuk mengatasi pengehadan ini. super() membolehkan anda mengakses kaedah kelas induk secara langsung. Berikut ialah contoh:

class Foo:
    def frotz(self):
        return "Baz"

class Bar(Foo):
    def frotz(self):
        # Call the parent class's frotz method using super()
        return super().frotz() + " Quux"
Salin selepas log masuk

Dengan menggunakan super().frotz(), Bar kelas anak boleh mengakses kaedah frotz kelas induknya Foo.

Gaya Baharu Kelas

Untuk versi Python sebelum 3.0, anda mesti secara eksplisit memilih untuk menggunakan kelas gaya baru. Dalam kes ini, sintaksnya berbeza sedikit:

class Foo(Bar):
    def baz(self, arg):
        return super(Foo, self).baz(arg)
Salin selepas log masuk

Dalam versi lama ini, super mengambil dua argumen: nama kelas anak (mis., Foo) dan objek contoh (mis., diri).

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