Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Memanggil Kaedah Kelas Induk dalam Warisan Python?

Bagaimanakah Saya Memanggil Kaedah Kelas Induk dalam Warisan Python?

Susan Sarandon
Lepaskan: 2024-11-27 04:04:10
asal
558 orang telah melayarinya

How Do I Call Parent Class Methods in Python Inheritance?

Memanggil Kaedah Kelas Induk dalam Python

Mekanisme pewarisan Python membenarkan kelas terbitan untuk mengakses kaedah kelas asas, tetapi tidak seperti Perl atau Java, ia tidak 't menyediakan kata kunci seperti "super". Sebaliknya, anda perlu merujuk kelas induk secara eksplisit.

Contoh:

Pertimbangkan contoh berikut di mana kelas Bar memanjangkan kelas Foo:

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

class Bar(Foo):
    def frotz(self):
        # Attempt to explicitly call the parent class 'frotz' method
        return Foo.frotz(self)
Salin selepas log masuk

Pendekatan ini memerlukan penentuan kelas induk secara eksplisit, menjadikannya menyusahkan untuk deep hierarki.

Penyelesaian: Menggunakan Fungsi 'super()'

Python 2.2 dan kemudiannya memperkenalkan fungsi super() yang menyediakan penyelesaian yang lebih elegan:

class Bar(Foo):
    def frotz(self):
        # Now calling 'frotz' using the 'super()' function
        return super().frotz()
Salin selepas log masuk

Fungsi super() secara bijak menentukan kelas induk untuk diwarisi, berdasarkan konteks dalam kelas terbitan. Ini menghapuskan keperluan untuk menentukan kelas induk secara eksplisit.

Untuk Python < 3:

Walau bagaimanapun, untuk versi Python sebelum 3, anda mesti secara eksplisit memilih untuk menggunakan kelas gaya baharu:

class Foo(object):
    def baz(self):
        pass

class Bar(Foo):
    def baz(self, arg):
        return super(Bar, self).baz(arg)  # Explicitly specifying 'Bar' as parent
Salin selepas log masuk

Kelas asas objek digunakan untuk membolehkan baharu- sintaks kelas gaya.

Jadi, dalam Python, memanggil kaedah kelas induk daripada kelas terbitan boleh dilakukan menggunakan 'super()' fungsi (diutamakan) atau dengan merujuk kelas induk secara eksplisit (hanya diperlukan untuk Python < 3).

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