Hướng dẫn multiple inheritance supported in python - hỗ trợ đa kế thừa trong python
Python Nhiều kế thừaMột lớp có thể được lấy từ nhiều lớp cơ sở trong Python, tương tự như C ++. Điều này được gọi là nhiều kế thừa. Show Trong nhiều kế thừa, các tính năng của tất cả các lớp cơ sở được kế thừa vào lớp dẫn xuất. Cú pháp cho nhiều kế thừa tương tự như thừa kế đơn. Thí dụ
Ở đây, lớp nhiều người có nguồn gốc từ các lớp Base1 và Base2. Nhiều kế thừa trong PythonLớp nhiều người thừa kế từ cả hai lớp Base1 và Base2. Kế thừa đa cấp PythonChúng ta cũng có thể kế thừa từ một lớp học dẫn xuất. Điều này được gọi là kế thừa đa cấp. Nó có thể có bất kỳ độ sâu nào trong Python. Trong kế thừa đa cấp, các tính năng của lớp cơ sở và lớp dẫn xuất được kế thừa vào lớp dẫn xuất mới. Một ví dụ với trực quan tương ứng được đưa ra dưới đây.
Ở đây, lớp dẫn xuất1 có nguồn gốc từ lớp cơ sở và lớp dẫn xuất2 có nguồn gốc từ lớp dẫn xuất1. Di sản đa cấp trong PythonThứ tự giải quyết phương pháp trong PythonMỗi lớp học trong Python đều có nguồn gốc từ lớp Vì vậy, về mặt kỹ thuật, tất cả các lớp khác, được tích hợp hoặc do người dùng xác định, là các lớp có nguồn gốc và tất cả các đối tượng là các trường hợp của lớp
Trong kịch bản nhiều kế thừa, bất kỳ thuộc tính được chỉ định nào được tìm kiếm đầu tiên trong lớp hiện tại. Nếu không được tìm thấy, việc tìm kiếm tiếp tục vào các lớp phụ huynh ở thời trang sâu, trái phải mà không tìm kiếm cùng một lớp hai lần. Vì vậy, trong ví dụ trên của lớp 1, thứ tự tìm kiếm là [ 1, 3, 4, object ]. Thứ tự này còn được gọi là tuyến tính hóa của lớp 1 và tập hợp các quy tắc được sử dụng để tìm thứ tự này được gọi là thứ tự phân giải phương thức (MRO).Method Resolution Order (MRO).MRO phải ngăn chặn đặt hàng ưu tiên cục bộ và cũng cung cấp tính đơn điệu. Nó đảm bảo rằng một lớp học luôn xuất hiện trước cha mẹ của nó. Trong trường hợp của nhiều phụ huynh, thứ tự giống như các bộ dữ liệu của các lớp cơ sở. MRO của một lớp có thể được xem là thuộc tính 7 hoặc phương thức 8. Cái trước trả lại một tuple trong khi cái sau trả lại một danh sách.
Dưới đây là một ví dụ kế thừa đa dạng phức tạp hơn một chút và trực quan hóa của nó cùng với MRO. Hình dung nhiều kế thừa trong Python
Đầu ra [ Để biết thuật toán thực tế về cách tính toán MRO, hãy truy cập thảo luận về MRO. Có, Python hỗ trợ nhiều kế thừa. Giống như C ++, một lớp có thể được lấy từ nhiều lớp cơ sở trong Python. Điều này được gọi là nhiều kế thừa. Trong nhiều kế thừa, các tính năng của tất cả các lớp cơ sở được kế thừa vào lớp dẫn xuất. Hãy cho chúng tôi xem cú pháp - Cú phápClass Base1: Body of the class Class Base2: Body of the class Class Base3: Body of the class . . . Class BaseN: Body of the class Class Derived(Base1, Base2, Base3, … , BaseN): Body of the class Lớp dẫn xuất kế thừa từ cả Base1, Base2 và Base3Classes. Thí dụTrong ví dụ dưới đây, lớp chim thừa hưởng lớp động vật.
Phương pháp class đảm bảo rằng Bird là một lớp con của lớp động vật.
Đầu raTrue It eats insects. It sleeps in the night. It flies in the sky. It sings a song. True
Cập nhật vào ngày 12 tháng 8 năm 2022 12:19:02
Làm thế nào để bạn sử dụng nhiều kế thừa trong Python?Kế thừa là cơ chế để đạt được khả năng tái sử dụng mã khi một lớp (lớp con) có thể rút ra các thuộc tính của lớp khác (lớp cha). Nó cũng cung cấp tính chuyển tiếp tức là. Nếu lớp C kế thừa từ P thì tất cả các lớp phụ của C cũng sẽ kế thừa từ P.one class(child class) can derive the properties of another class(parent class). It also provides transitivity ie. if class C inherits from P then all the sub-classes of C would also inherit from P.
Tại sao nhiều kế thừa không được hỗ trợ trong Python?Nhiều kế thừa hữu ích trong nhiều tình huống như một nhà phát triển, nhưng nó làm tăng đáng kể sự phức tạp của ngôn ngữ, điều này làm cho cuộc sống khó khăn hơn cho cả nhà phát triển trình biên dịch và các lập trình viên.it greatly increases the complexity of the language, which makes life harder for both the compiler developers and the programmers.
Điều gì hỗ trợ nhiều kế thừa?Ngôn ngữ lập trình Java hỗ trợ nhiều loại kế thừa, là khả năng của một lớp để thực hiện nhiều hơn một giao diện.Một đối tượng có thể có nhiều loại: loại lớp riêng và các loại của tất cả các giao diện mà lớp thực hiện.Java programming language supports multiple inheritance of type, which is the ability of a class to implement more than one interface. An object can have multiple types: the type of its own class and the types of all the interfaces that the class implements.
Python hỗ trợ bao nhiêu kế thừa?Tùy thuộc vào số lượng các lớp con và phụ huynh có liên quan, có bốn loại thừa kế trong Python.four types of inheritance in python. |