Rumah >pembangunan bahagian belakang >Tutorial Python >Gunakan Python untuk menunjukkan corak biasa dan contoh pelaksanaan pelbagai warisan

Gunakan Python untuk menunjukkan corak biasa dan contoh pelaksanaan pelbagai warisan

PHPz
PHPzasal
2023-12-30 13:52:001198semak imbas

Gunakan Python untuk menunjukkan corak biasa dan contoh pelaksanaan pelbagai warisan

Gunakan Python untuk melaksanakan corak biasa dan contoh berbilang warisan

Ikhtisar:
Pewarisan berbilang bermakna kelas boleh mewarisi sifat dan kaedah daripada berbilang kelas induk. Dalam Python, pewarisan berbilang ialah teknik pengaturcaraan biasa yang boleh mencapai struktur kelas yang lebih fleksibel dan kompleks dengan menggabungkan ciri-ciri berbilang kelas induk. Artikel ini akan memperkenalkan corak biasa dan contoh penggunaan berbilang warisan, dan menyediakan demonstrasi kod khusus.

Corak biasa:

  1. Tertib panggilan kaedah dengan nama yang sama: Apabila subkelas mewarisi berbilang kelas induk, dan kelas induk ini mempunyai kaedah dengan nama yang sama, Python akan memanggil kaedah dalam susunan yang diwarisi dari kiri ke kanan. Iaitu, kaedah kelas induk pertama dipanggil pertama, dan kemudian kaedah kelas induk berikutnya dipanggil dalam urutan.
  2. Panggil kaedah kelas induk tertentu: Anda boleh menggunakan fungsi super() untuk memanggil kaedah kelas induk tertentu. Fungsi super() mengembalikan objek sementara yang melaluinya kaedah kelas induk boleh dipanggil. Anda boleh menggunakan fungsi super() untuk memilih kaedah kelas induk secara fleksibel untuk dipanggil dalam kes pewarisan berbilang.

Contoh kod:
Yang berikut menggunakan contoh khusus untuk menunjukkan penggunaan berbilang warisan.

class Animal:
    def __init__(self, name):
        self.name = name

    def eat(self):
        print(f"{self.name} is eating")

    def sleep(self):
        print(f"{self.name} is sleeping")


class Flyable:
    def fly(self):
        print(f"{self.name} is flying")


class Swimmable:
    def swim(self):
        print(f"{self.name} is swimming")


class Bird(Animal, Flyable):
    def __init__(self, name):
        super().__init__(name)

    def eat(self):
        super().eat()
        print("Bird is eating")

    def sleep(self):
        super().sleep()
        print("Bird is sleeping")


class Fish(Animal, Swimmable):
    def __init__(self, name):
        super().__init__(name)

    def eat(self):
        super().eat()
        print("Fish is eating")

    def sleep(self):
        super().sleep()
        print("Fish is sleeping")


class Duck(Bird):
    def __init__(self, name):
        super().__init__(name)


class Penguin(Bird, Swimmable):
    def __init__(self, name):
        super().__init__(name)


class Shark(Fish):
    def __init__(self, name):
        super().__init__(name)


duck = Duck("Daffy")
duck.eat()
duck.sleep()
duck.fly()

penguin = Penguin("Pengpeng")
penguin.eat()
penguin.sleep()
penguin.fly()
penguin.swim()

shark = Shark("Sam")
shark.eat()
shark.sleep()
shark.swim()

Dalam kod di atas, kami mencipta beberapa kelas yang mewakili haiwan, haiwan yang boleh terbang dan haiwan yang boleh berenang. Melalui pelbagai warisan, burung dan ikan dicipta, masing-masing mewarisi ciri-ciri kelas induk yang berbeza. Kemudian kesan warisan berbilang ditunjukkan melalui kelas warisan Itik dan Penguin burung, dan kelas warisan Shark of fish.

Ringkasan:
Seperti yang dapat dilihat daripada contoh di atas, menggunakan pelbagai warisan, kita boleh menggabungkan ciri yang berbeza antara kelas yang berbeza dan secara fleksibel mencipta struktur kelas yang lebih kompleks dan pelbagai. Walau bagaimanapun, apabila menggunakan berbilang warisan, anda perlu memberi perhatian kepada susunan kaedah panggilan dan menggunakan fungsi super() untuk memanggil dengan jelas kaedah kelas induk. Apabila teknologi pewarisan berbilang digunakan dengan betul, kebolehgunaan semula dan fleksibiliti kod boleh dipertingkatkan dengan lebih baik.

Atas ialah kandungan terperinci Gunakan Python untuk menunjukkan corak biasa dan contoh pelaksanaan pelbagai warisan. 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