Mẹo 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
Thủ Thuật Hướng dẫn Nếu một lớp thừa kế từ nhiều lớp thì thứ tự thừa kế không thành vấn đề trong python 2022
Họ tên bố (mẹ) đang tìm kiếm từ khóa Nếu một lớp thừa kế từ nhiều lớp thì thứ tự thừa kế không thành vấn đề trong python được Cập Nhật vào lúc : 2022-12-23 16:26:04 . Với phương châm chia sẻ Mẹo về trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi Read Post vẫn ko hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Admin lý giải và hướng dẫn lại nha.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 và sinh hoạt giải trí của việc phân giải thứ tự phương thức trong Python
Nội dung chính Show- Giới thiệu về Python Đa kế thừaThứ tự xử lý và xử lý phương pháp (MRO)Đa thừa kế và siêuThứ tự thừa kế có quan trọng trong Python không?Thứ tự có quan trọng không nếu một lớp thừa kế từ nhiều lớp trong Python?Bạn hoàn toàn có thể thừa kế từ nhiều lớp trong Python không?Kế thừa đa cấp hoạt động và sinh hoạt giải trí ra làm sao trong Python?
Giới thiệu về Python Đa thừa kế
Khi một lớp thừa kế từ một lớp duy nhất, bạn có một thừa kế duy nhất. Python được cho phép một lớp thừa kế từ nhiều lớp. Nếu một lớp thừa kế từ hai lớp trở lên, bạn sẽ có nhiều lớp thừa kế
Để mở rộng nhiều lớp, bạn chỉ định những lớp cha bên trong dấu ngoặc đơn
class Car: def go(self): print('Going')
Code language: Python (python)7 sau tên lớp của lớp con như vậy nàyclass ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)Cú pháp đa thừa kế tương tự như list tham số trong định nghĩa lớp. Thay vì gồm có một lớp cha bên trong dấu ngoặc đơn, bạn gồm có 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 và sinh hoạt giải trí của đa thừa kế
Đầu tiên, định nghĩa một lớp
class Car: def go(self): print('Going')
Code language: Python (python)8 có phương thứcclass Car: def go(self): print('Going')
Code language: Python (python)9class Car: def go(self): print('Going')
Code language: Python (python)Thứ hai, định nghĩa một lớp
class Flyable: def fly(self): print('Flying')
Code language: Python (python)0 có phương thứcclass Flyable: def fly(self): print('Flying')
Code language: Python (python)1class Flyable: def fly(self): print('Flying')
Code language: Python (python)Thứ ba, định nghĩa
class Flyable: def fly(self): print('Flying')
Code language: Python (python)2 thừa kế từ cả hai lớpclass Car: def go(self): print('Going')
Code language: Python (python)8 vàclass Flyable: def fly(self): print('Flying')
Code language: Python (python)0class ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)1Vì
class Flyable: def fly(self): print('Flying')
Code language: Python (python)2 thừa kế từ những lớpclass Car: def go(self): print('Going')
Code language: Python (python)8 vàclass Flyable: def fly(self): print('Flying')
Code language: Python (python)0 nên nó sử dụng lại những phương thức từ những lớp đó. Nó nghĩa là bạn hoàn toàn có thể gọi những phương thứcclass Car: def go(self): print('Going')
Code language: Python (python)9 vàclass Flyable: def fly(self): print('Flying')
Code language: Python (python)1 trên một thể hiện của lớpclass Flyable: def fly(self): print('Flying')
Code language: Python (python)2 như vậy nàyclass ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)8đầu ra
class ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)9Thứ tự xử lý và xử lý phương pháp (MRO)
Khi những lớp cha có những 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
class ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)11 vào những lớpclass Car: def go(self): print('Going')
Code language: Python (python)8,class Flyable: def fly(self): print('Flying')
Code language: Python (python)0 vàclass Flyable: def fly(self): print('Flying')
Code language: Python (python)2. Trong phương thứcclass ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)11 của lớpclass Flyable: def fly(self): print('Flying')
Code language: Python (python)2, hãy gọi phương thứcclass ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)11 của lớpclass ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)18class Car: def go(self): print('Going')
Code language: Python (python)8Thứ hai, tạo một thể hiện của lớp
class Flyable: def fly(self): print('Flying')
Code language: Python (python)2 và gọi phương thứcclass ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)11class Car: def go(self): print('Going')
Code language: Python (python)1đầu ra
class Car: def go(self): print('Going')
Code language: Python (python)2Như bạn hoàn toàn có thể thấy rõ từ đầu ra,
class ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)81 gọi phương thứcclass ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)11 của lớpclass Flyable: def fly(self): print('Flying')
Code language: Python (python)0Sau đây đã cho tất cả chúng ta biết
class ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)84 của lớpclass Flyable: def fly(self): print('Flying')
Code language: Python (python)2class Car: def go(self): print('Going')
Code language: Python (python)8đầu ra
class Car: def go(self): print('Going')
Code language: Python (python)0Từ trái sang phải, bạn sẽ thấy
class Flyable: def fly(self): print('Flying')
Code language: Python (python)2,class Flyable: def fly(self): print('Flying')
Code language: Python (python)0,class Car: def go(self): print('Going')
Code language: Python (python)8 vàclass ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)89Lưu ý rằng những đối tượng
class Car: def go(self): print('Going')
Code language: Python (python)8 vàclass Flyable: def fly(self): print('Flying')
Code language: Python (python)0 thừa kế hoàn toàn từ lớpclass ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)89. Khi bạn gọi phương thứcclass ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)11 từ đối tượng củaclass Flyable: def fly(self): print('Flying')
Code language: Python (python)2, Python sử dụng đường dẫn tìm kiếm lớpclass ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)84Vì lớp
class Flyable: def fly(self): print('Flying')
Code language: Python (python)0 nằm cạnh lớpclass Flyable: def fly(self): print('Flying')
Code language: Python (python)2, nênclass ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)81 gọi phương thứcclass ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)11 của lớpclass Flyable: def fly(self): print('Flying')
Code language: Python (python)2Nếu đảo lộn thứ tự của lớp
class Flyable: def fly(self): print('Flying')
Code language: Python (python)0 và lớpclass Car: def go(self): print('Going')
Code language: Python (python)8 trong list thì lớpclass ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)84 sẽ thay đổi tương ứng. Ví dụclass Car: def go(self): print('Going')
Code language: Python (python)1đầu ra
class Car: def go(self): print('Going')
Code language: Python (python)2Trong ví dụ này, thay vào đó,
class ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)81 gọi phương thứcclass ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)11 của lớpclass Car: def go(self): print('Going')
Code language: Python (python)8, nhờ vào 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
class Car: def go(self): print('Going')
Code language: Python (python)87 vào lớpclass Car: def go(self): print('Going')
Code language: Python (python)8class Car: def go(self): print('Going')
Code language: Python (python)3Thứ hai, thêm phương thức
class Car: def go(self): print('Going')
Code language: Python (python)87 vào lớpclass Flyable: def fly(self): print('Flying')
Code language: Python (python)0class Car: def go(self): print('Going')
Code language: Python (python)4class Car: def go(self): print('Going')
Code language: Python (python)87 của những lớpclass Car: def go(self): print('Going')
Code language: Python (python)8 vàclass Flyable: def fly(self): print('Flying')
Code language: Python (python)0 đồng ý một số trong những tham số rất khác nhau. Nếu lớpclass Flyable: def fly(self): print('Flying')
Code language: Python (python)2 thừa kế từ lớpclass Car: def go(self): print('Going')
Code language: Python (python)8 vàclass Flyable: def fly(self): print('Flying')
Code language: Python (python)0, thì phương thứcclass Car: def go(self): print('Going')
Code language: Python (python)87 của lớp đó cần gọi đúng phương thứcclass Car: def go(self): print('Going')
Code language: Python (python)87 được chỉ định trong giải pháp đặt hàng phương thứcclass ChildClass(ParentClass1, ParentClass2, ParentClass3): pass
Code language: Python (python)84 của lớpclass Flyable: def fly(self): print('Flying')
Code language: Python (python)2Thứ ba, thêm phương thức
class Car: def go(self): print('Going')
Code language: Python (python)87 vào lớpclass Flyable: def fly(self): print('Flying')
Code language: Python (python)2class Car: def go(self): print('Going')
Code language: Python (python)5Độ phân giải thứ tự phương thức của lớp
class Flyable: def fly(self): print('Flying')
Code language: Python (python)2 làclass Car: def go(self): print('Going')
Code language: Python (python)0class Car: def go(self): print('Going')
Code language: Python (python)24 gọiclass Car: def go(self): print('Going')
Code language: Python (python)87 của lớpclass Flyable: def fly(self): print('Flying')
Code language: Python (python)2. Do đó, bạn cần truyền đối sốclass Car: def go(self): print('Going')
Code language: Python (python)27 cho phương thứcclass Car: def go(self): print('Going')
Code language: Python (python)87Bởi vì lớp
class Flyable: def fly(self): print('Flying')
Code language: Python (python)2 không thể truy cập phương thứcclass Car: def go(self): print('Going')
Code language: Python (python)87 của lớpclass Car: def go(self): print('Going')
Code language: Python (python)8, bạn cần khởi tạo những thuộc tínhclass Car: def go(self): print('Going')
Code language: Python (python)82 vàclass Car: def go(self): print('Going')
Code language: Python (python)83 riêng lẻ
Post a Comment