Thứ tự đa kế thừa trong Python
Python là một ngôn ngữ hướng đối tượng cao. Điều đó có nghĩa là mọi thứ trong Python đều là một đối tượng, giúp việc xây dựng logic OOP bằng Python tương đối dễ dàng Show Nếu bạn đang thực hiện Đa kế thừa, bạn nên biết về Thứ tự giải quyết phương thức Python Để tạo một lớp kế thừa từ nhiều lớp python, chúng ta viết tên của các lớp này bên trong dấu ngoặc đơn cho lớp dẫn xuất khi định nghĩa nó Chúng tôi phân tách các tên này bằng dấu phẩy
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Hãy giải thích Python MRO ngay bây giờ Python MRO (Thứ tự giải quyết phương thức)Một thứ tự được tuân theo khi tìm kiếm một thuộc tính trong một lớp liên quan đến nhiều kế thừa Đầu tiên, tìm kiếm bắt đầu với lớp hiện tại. Tìm kiếm di chuyển đến các lớp cha từ trái sang phải nếu không tìm thấy Tóm lược. trong hướng dẫn này, bạn sẽ tìm hiểu về tính đa thừa kế của Python và cách hoạt động của việc phân giải thứ tự phương thức trong Python Giới thiệu về Python Đa kế thừaKhi một lớp kế thừa từ một lớp duy nhất, bạn có một kế thừa duy nhất. Python cho phép một lớp kế thừa từ nhiều lớp. Nếu một lớp kế thừa từ hai lớp trở lên, bạn sẽ có nhiều lớp kế thừa Để mở rộng nhiều lớp, bạn chỉ định các lớp cha bên trong dấu ngoặc đơn 7 sau tên lớp của lớp con như thế này
Cú pháp đa thừa kế tương tự như danh sách tham số trong định nghĩa lớp. Thay vì bao gồm một lớp cha bên trong dấu ngoặc đơn, bạn bao gồm hai hoặc nhiều lớp, được phân tách bằng dấu phẩy Hãy lấy một ví dụ để hiểu cách hoạt động của đa thừa kế Đầu tiên, định nghĩa một lớp 8 có phương thức 9
Thứ hai, định nghĩa một lớp 0 có phương thức 1
Thứ ba, định nghĩa lớp 2 kế thừa từ cả hai lớp 8 và lớp 0
Vì lớp 2 kế thừa từ lớp 8 và lớp 0 nên nó sử dụng lại các phương thức từ các lớp đó. Điều đó có nghĩa là bạn có thể gọi các phương thức 9 và 1 trên một thể hiện của lớp 2 như thế này
đầu ra
Thứ tự giải quyết phương pháp (MRO)Khi các lớp cha có các phương thức trùng tên và lớp con gọi phương thức đó, Python sẽ sử dụng thứ tự phân giải phương thức (MRO) để tìm kiếm phương thức phù hợp để gọi. Xem xét ví dụ sau Đầu tiên, thêm phương thức 1 vào các lớp 8, 0 và 2. Trong phương thức 1 của lớp 2, hãy gọi phương thức 1 của lớp 8
Thứ hai, tạo một thể hiện của lớp 2 và gọi phương thức 1
đầu ra
Như bạn có thể thấy rõ ràng từ đầu ra, _ 1 gọi phương thức ____12_______1 của lớp _______0 Sau đây cho thấy lớp 4 của lớp 2
đầu ra 0 Từ trái sang phải, bạn sẽ thấy 2, 0, 8 và 9 Lưu ý rằng các đối tượng 8 và 0 kế thừa hoàn toàn từ lớp 9. Khi bạn gọi phương thức 1 từ đối tượng của 2, Python sử dụng đường dẫn tìm kiếm lớp 4 Vì lớp 0 nằm cạnh lớp 2, nên lớp 1 gọi phương thức 1 của lớp 2 Nếu bạn lật thứ tự của lớp 0 và lớp 8 trong danh sách, thì lớp 4 sẽ thay đổi tương ứng. Ví dụ 1 đầu ra 2 Trong ví dụ này, thay vào đó, 1 gọi phương thức 1 của lớp 8, dựa trên thứ tự của chúng trong phân giải thứ tự phương thức Đa thừa kế và siêuĐầu tiên, thêm phương thức 7 vào lớp 8 3 Thứ hai, thêm phương thức 7 vào lớp 0 4 Các lớp 7 của lớp 8 và lớp 0 chấp nhận một số lượng tham số khác nhau. Nếu lớp 2 kế thừa từ lớp 8 và lớp 0, thì phương thức 7 của nó cần gọi đúng phương thức 7 được chỉ định trong giải pháp thứ tự phương thức 4 của lớp 2 Thứ ba, thêm phương thức 7 vào lớp 2 5 Độ phân giải thứ tự phương thức của lớp 2 là 0 4 gọi 7 của lớp 2. Do đó, bạn cần truyền đối số 7 cho phương thức 7 Bởi vì lớp 2 không thể truy cập phương thức 7 của lớp 8, bạn cần khởi tạo các thuộc tính 2and 3 riêng lẻ Thứ tự có quan trọng trong nhiều kế thừa trong Python không?Có, bạn có thể thực hiện nhiều kế thừa . vui lòng lưu ý thứ tự của lớp trong các vấn đề của ExampleSimMod.
Làm thế nào có thể có nhiều kế thừa trong Python?Một lớp có thể được bắt nguồn từ nhiều hơn một lớp cơ sở trong Python , tương tự như C++. Cái này gọi là đa thừa kế. Trong đa 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 của đa thừa kế tương tự như đơn thừa kế.
Phương pháp MRO trong Python là gì?Thứ tự giải quyết phương thức (MRO) nó biểu thị cách ngôn ngữ lập trình giải quyết một phương thức hoặc thuộc tính . Python hỗ trợ các lớp kế thừa từ các lớp khác. Lớp được kế thừa được gọi là Lớp cha hoặc Lớp cha, trong khi lớp kế thừa được gọi là Lớp con hoặc Lớp con. |