Câu hỏi phỏng vấn Python
Câu hỏi

MRO trong Python là gì ...

Câu trả lời

MRO, viết tắt của Method Resolution Order, là một thuật ngữ trong Python chỉ thứ tự mà Python sử dụng để tìm kiếm một phương thức trong một hệ thống kế thừa phức tạp của các lớp. Nói cách khác, MRO xác định thứ tự mà Python sẽ tìm kiếm để tìm ra phương thức nào sẽ được gọi khi bạn gọi một phương thức trên một đối tượng.

Cách MRO Hoạt Động

Python sử dụng một thuật toán cụ thể gọi là C3 Linearization để xác định MRO. Thuật toán này đảm bảo rằng:

  • Một lớp luôn xuất hiện trước các lớp cơ sở của nó.
  • Nếu một lớp kế thừa từ nhiều lớp, thứ tự mà các lớp cơ sở được liệt kê trong định nghĩa lớp con sẽ được duy trì.
  • Mỗi lớp xuất hiện một lần duy nhất.

Bạn có thể sử dụng thuộc tính __mro__ hoặc hàm mro() trên một lớp để xem MRO của nó:

python Copy
class BaseClass:
    pass

class SubClass1(BaseClass):
    pass

class SubClass2(BaseClass):
    pass

class MyCl...
senior

senior

Gợi ý câu hỏi phỏng vấn

senior

Sự khác biệt giữa classes kiểu cũ và kiểu mới trong Python là gì?

middle

Câu lệnh with trong Python được thiết kế để làm gì?

senior

set() được implement nội bộ như thế nào?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào