Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào chúng ta có thể mở rộng nhiều lớp Python trong kế thừa?

Theo tài liệu Python, 'super' có thể giúp mở rộng nhiều lớp python trong kế thừa. Nó trả về một đối tượng proxy mà phương thức ủy quyền gọi đến một lớp cha hoặc anh chị em cùng loại. Điều này rất hữu ích để truy cập các phương thức kế thừa đã bị ghi đè trong một lớp. Thứ tự tìm kiếm giống như thứ tự được sử dụng bởi getattr () ngoại trừ việc chính loại đó bị bỏ qua.

Nói cách khác, một lệnh gọi đến super trả về một đối tượng giả mạo ủy quyền các tra cứu thuộc tính cho các lớp phía trên bạn trong chuỗi kế thừa. Những điểm cần lưu ý:

Điều này không hoạt động với các lớp kiểu cũ, bạn cần phải chuyển lớp và cá thể của riêng mình thành super trong Python 2.x. Yêu cầu này đã được từ bỏ trong 3.x.

Điều này sẽ xử lý tất cả các đa kế thừa một cách chính xác. Một thứ tự phân giải phương thức được tạo và các tra cứu đi qua các lớp cha theo thứ tự này.