Nếu một lớp kế thừa từ nhiều lớp thì thứ tự kế thừa không thành vấn đề trong python
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 Show
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 2 kế thừa từ cả hai lớp 8 và 0 1 Vì 2 kế thừa từ các lớp 8 và 0 nên nó sử dụng lại các phương thức từ các lớp đó. Nó 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 8 đầu ra 9 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 11 vào các lớp 8, 0 và 2. Trong phương thức 11 của lớp 2, hãy gọi phương thức 11 của lớp 18 8 Thứ hai, tạo một thể hiện của lớp 2 và gọi phương thức 11 1 đầu ra 2 Như bạn có thể thấy rõ từ đầu ra, 81 gọi phương thức 11 của lớp 0 Sau đây cho thấy 84 của lớp 2 8 đầu ra 0 Từ trái sang phải, bạn sẽ thấy 2, 0, 8 và 89 Lưu ý rằng các đối tượng 8 và 0 kế thừa hoàn toàn từ lớp 89. Khi bạn gọi phương thức 11 từ đối tượng của 2, Python sử dụng đường dẫn tìm kiếm lớp 84 Vì lớp 0 nằm cạnh lớp 2, nên 81 gọi phương thức 11 của lớp 2 Nếu đảo lộn thứ tự của lớp 0 và lớp 8 trong danh sách thì lớp 84 sẽ thay đổi tương ứng. Ví dụ 1 đầu ra 2 Trong ví dụ này, thay vào đó, 81 gọi phương thức 11 của lớp 8, dựa trên thứ tự của chúng trong giải pháp thứ tự phương thức Đa thừa kế và siêuĐầu tiên, thêm phương thức 87 vào lớp 8 3 Thứ hai, thêm phương thức 87 vào lớp 0 4 87 của các lớp 8 và 0 chấp nhận một số tham số khác nhau. Nếu lớp 2 kế thừa từ lớp 8 và 0, thì phương thức 87 của lớp đó cần gọi đúng phương thức 87 được chỉ định trong giải pháp đặt hàng phương thức 84 của lớp 2 Thứ ba, thêm phương thức 87 vào lớp 2 5 Độ phân giải thứ tự phương thức của lớp 2 là 0 24 gọi 87 của lớp 2. Do đó, bạn cần truyền đối số 27 cho phương thức 87 Bởi vì lớp 2 không thể truy cập phương thức 87 của lớp 8, bạn cần khởi tạo các thuộc tính 82 và 83 riêng lẻ Thứ tự kế thừa có quan trọng trong Python không?Khi chúng tôi tìm kiếm một thuộc tính trong một lớp có liên quan đến tính đa thừa kế của python, một thứ tự sẽ được tuân theo . Đầu tiên, nó được tìm kiếm trong lớp hiện tại. Nếu không tìm thấy, tìm kiếm sẽ chuyển sang các lớp cha. Đây là từ trái sang phải, độ sâu đầu tiên.
Thứ tự có quan trọng không nếu một lớp kế thừa từ nhiều lớp trong Python?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.
Bạn có thể kế thừa từ nhiều lớp trong Python không?Python hỗ trợ kế thừa từ nhiều lớp .
Kế thừa đa cấp hoạt động như thế 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 hóa tương ứng được đưa ra dưới đây. Ở đây, lớp Derived1 được dẫn xuất từ lớp Cơ sở và lớp Derived2 được dẫn xuất từ lớp Derived1. |