Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Memanggil Kaedah Kelas Induk dalam Warisan Python?
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)
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()
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
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!