Rumah > Artikel > pembangunan bahagian belakang > Pengenalan kepada fungsi Python: fungsi dan contoh fungsi super
Pengenalan kepada fungsi Python: fungsi dan contoh fungsi super
Fungsi super() ialah fungsi terbina dalam yang biasa digunakan dalam Python, terutamanya digunakan untuk memanggil kaedah kelas induk (kelas super). Gunakan fungsi super() untuk memanggil kaedah yang telah ditindih dalam kelas induk dalam subkelas. Artikel ini akan memperkenalkan fungsi dan contoh fungsi super secara terperinci, dan juga menyediakan contoh kod khusus untuk rujukan anda.
Dalam Python, kita selalunya perlu menulis semula beberapa kaedah kelas induk dalam subkelas. Dalam kes ini, jika kita ingin memanggil kaedah kelas induk asal dalam subkelas, kita perlu menggunakan fungsi super(). Menggunakan fungsi super() boleh mencapai fungsi berikut:
(1) Memanggil kaedah dalam kelas induk dan bukannya menulis semulanya dalam subkelas
(2) Elakkan masalah tak terhingga yang disebabkan oleh perhubungan pewarisan masalah Rekursi subkelas;
(3) Anda boleh melaksanakan kaedah yang tidak ditakrifkan dalam kelas induk.
fungsi super() mempunyai dua cara penggunaan: satu ialah memanggilnya secara terus, satu lagi memanggilnya dengan dua parameter.
(1) Panggilan terus
Apabila memanggil fungsi super() secara langsung, anda perlu menentukan contoh subkelas dan subkelas sebagai parameter. Contohnya:
class Person: def __init__(self, name, age): self.name = name self.age = age class Student(Person): def __init__(self, name, age, grade): super().__init__(name, age) self.grade = grade
Dalam kod di atas, kelas Pelajar mengatasi kaedah __init__ kelas Orang. Dengan menggunakan fungsi super(), kita boleh memanggil kaedah __init__ kelas induk dengan mudah, dengan itu mengelakkan redundansi kod dan kemungkinan ralat.
(2) Panggilan dengan dua parameter
Jika anda ingin memanggil kaedah bukan pembina (seperti kaedah biasa) kelas induk, anda perlu memanggil fungsi super() dengan dua parameter. Contohnya:
class Person: def say_hello(self): print("Hello, I'm a person.") class Student(Person): def say_hello(self): super(Student, self).say_hello() print("I'm a student.")
Dalam kod di atas, kelas Pelajar mengatasi kaedah say_hello kelas Orang. Apabila menggunakan fungsi super(), anda perlu menentukan dua parameter: parameter pertama ialah nama subkelas, dan parameter kedua ialah contoh subkelas. Dengan cara ini, kaedah kelas induk boleh dipanggil dalam subkelas, dengan itu mengelakkan kemungkinan redundansi dan ralat kod.
Untuk lebih memahami dan menguasai penggunaan fungsi super(), beberapa contoh kod khusus disediakan di bawah.
(1) Panggil kaedah __init__ kelas induk
class Person: def __init__(self, name, age): self.name = name self.age = age class Student(Person): def __init__(self, name, age, grade): super().__init__(name, age) self.grade = grade def get_info(self): print("Name: {} Age: {} Grade: {}".format(self.name, self.age, self.grade)) student = Student("Lucy", 18, "Grade 10") student.get_info()
Dalam contoh ini, kami mentakrifkan kelas Orang dan kelas Pelajar. Dalam kaedah __init__ kelas Pelajar, kami memanggil kaedah __init__ kelas induk Orang Fungsi ini boleh dicapai dengan mudah menggunakan fungsi super(). Akhir sekali, maklumat pelajar dikeluarkan dengan memanggil kaedah get_info.
(2) Panggil kaedah biasa kelas induk
class Person: def say_hello(self): print("Hello, I'm a person.") class Student(Person): def say_hello(self): super(Student, self).say_hello() print("I'm a student.") student = Student() student.say_hello()
Dalam contoh ini, kami mentakrifkan kelas Orang dan kelas Pelajar. Dalam kelas Pelajar, kami mengatasi kaedah say_hello kelas Person dan menggunakan fungsi super() untuk memanggil kaedah say_hello bagi kelas induk Person. Akhir sekali, sapaan pelajar dikeluarkan dengan memanggil kaedah say_hello. Fungsi
super() ialah fungsi terbina dalam yang biasa digunakan dalam Python, terutamanya digunakan untuk memanggil kaedah kelas induk. Dengan menggunakan fungsi super(), kita boleh mengelakkan redundansi kod dan kemungkinan ralat. Apabila kita mengatasi kaedah kelas induk dalam subkelas, menggunakan fungsi super() membolehkan kita memanggil kaedah kelas induk dengan lebih mudah. Pada masa yang sama, kita juga harus ambil perhatian bahawa apabila menggunakan fungsi super(), nilai khusus kedua-dua parameter perlu dinyatakan untuk mengelakkan masalah rekursi tak terhingga yang disebabkan oleh hubungan warisan.
Atas ialah kandungan terperinci Pengenalan kepada fungsi Python: fungsi dan contoh fungsi super. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!