Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách hoạt động của biến class trong kế thừa đa lớp Python

Class có thể kế thừa từ nhiều base class - gọi là multiple inheritance.

class Super1:
    pass

class Super2:
    pass

class MultiDerived(Super1, Super2):
    pass

Trong kế thừa đa lớp, mọi thuộc tính được tìm kiếm theo thứ tự:

  1. Class hiện tại
  2. Các class cha theo chiều sâu, trái sang phải, không tìm cùng class hai lần

Ví dụ MultiDerived: thứ tự tìm kiếm [MultiDerived, Super1, Super2, object]. Thứ tự này gọi là linearization, quy tắc tìm thứ tự gọi là Method Resolution Order (MRO).

MRO đảm bảo: class luôn xuất hiện trước parent; với nhiều parent, thứ tự giống tuple base class.

Xem MRO

>>> MultiDerived.mro()
[, , , ]

>>> MultiDerived.__mro__
(, , , )

__mro__ trả về tuple, mro() trả về list.