Hướng dẫn what is multilevel inheritance in python - kế thừa đa cấp trong python là gì
Python Nhiều kế thừaMột lớp có thể được lấy từ nhiều lớp cơ sở trong Python, tương tự như C ++. Điều này được gọi là nhiều kế thừa. Show
Trong nhiều kế thừa, các tính năng của tất cả các lớp cơ sở được kế thừa vào lớp dẫn xuất. Cú pháp cho nhiều kế thừa tương tự như thừa kế đơn. Thí dụ
Ở đây, lớp nhiều người có nguồn gốc từ các lớp Base1 và Base2. Nhiều kế thừa trong PythonLớp nhiều người thừa kế từ cả hai lớp Base1 và Base2. Kế thừa đa cấp PythonChúng ta cũng có thể kế thừa từ một lớp học dẫn xuất. Điều này được gọi là kế thừa đa cấp. Nó có thể có bất kỳ độ sâu 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 tương ứng được đưa ra dưới đây.
Ở đây, lớp dẫn xuất1 có nguồn gốc từ lớp cơ sở và lớp dẫn xuất2 có nguồn gốc từ lớp dẫn xuất1. Di sản đa cấp trong PythonThứ tự giải quyết phương pháp trong PythonMỗi lớp học trong Python đều có nguồn gốc từ lớp 1. Nó là loại cơ sở nhất trong Python.Vì vậy, về mặt kỹ thuật, tất cả các lớp khác, được tích hợp hoặc do người dùng xác định, là các lớp có nguồn gốc và tất cả các đối tượng là các trường hợp của lớp 1.
Trong kịch bản nhiều kế thừa, bất kỳ thuộc tính được chỉ định nào được tìm kiếm đầu tiên trong lớp hiện tại. Nếu không được tìm thấy, việc tìm kiếm tiếp tục vào các lớp phụ huynh ở thời trang sâu, trái phải mà không tìm kiếm cùng một lớp hai lần. Vì vậy, trong ví dụ trên của lớp 3, thứ tự tìm kiếm là [ 3, 5, 6, 1]. Thứ tự này còn được gọi là tuyến tính hóa của lớp 3 và tập hợp các quy tắc được sử dụng để tìm thứ tự này được gọi là thứ tự phân giải phương thức (MRO).Method Resolution Order (MRO).MRO phải ngăn chặn đặt hàng ưu tiên cục bộ và cũng cung cấp tính đơn điệu. Nó đảm bảo rằng một lớp học luôn xuất hiện trước cha mẹ của nó. Trong trường hợp của nhiều phụ huynh, thứ tự giống như các bộ dữ liệu của các lớp cơ sở. MRO của một lớp có thể được xem là thuộc tính 9 hoặc phương thức 0. Cái trước trả lại một tuple trong khi cái sau trả lại một danh sách.
Dưới đây là một ví dụ kế thừa đa dạng phức tạp hơn một chút và trực quan hóa của nó cùng với MRO. Hình dung nhiều kế thừa trong Python
Đầu ra [ Để biết thuật toán thực tế về cách tính toán MRO, hãy truy cập thảo luận về MRO. Kế thừa được định nghĩa là cơ chế kế thừa các thuộc tính của lớp cơ sở cho lớp con. Ở đây chúng ta sẽ thấy các loại hình ảnh trong Python.inheritance in Python. Các loại kế thừa trong PythonCác loại kế thừa phụ thuộc vào số lượng các lớp con và phụ huynh có liên quan. Có bốn loại kế thừa trong Python: Di truyền duy nhất: & nbsp;Kế thừa duy nhất cho phép một lớp dẫn xuất kế thừa các thuộc tính từ một lớp cha, do đó cho phép tái sử dụng mã và bổ sung các tính năng mới vào mã hiện có. Example: Python3 1 2 3 4 5 6 7 8 9 0 1 2 1 4 3 4 7 6 7 8 9 0 3 2 1 6 7 1 9 1[1 Output: This function is in parent class. This function is in child class. Nhiều kế thừa: & nbsp;Khi một lớp có thể được lấy từ nhiều lớp cơ sở, loại thừa kế này được gọi là nhiều kế thừa. Trong nhiều kế thừa, tất cả các tính năng của các lớp cơ sở được kế thừa vào lớp dẫn xuất. & NBSP; Example: Python3 1 [3 3[55____46 [7 3 4 This function is in parent class. This function is in child class.0 6 7 8 9 0 6This function is in parent class. This function is in child class.7 1 This function is in parent class. This function is in child class.9 3Father : RAM Mother : SITA1 6 [7 3 4 Father : RAM Mother : SITA6 6 7 8 9 0 6Lal mani Grandfather name : Lal mani Father name : Rampal Son name : Prince3 1 Lal mani Grandfather name : Lal mani Father name : Rampal Son name : Prince5 3 4 Lal mani Grandfather name : Lal mani Father name : Rampal Son name : Prince8 6 7 8 9 0This function is in parent class. This function is in child 1. This function is in parent class. This function is in child 2.4 This function is in parent class. This function is in child 1. This function is in parent class. This function is in child 2.5 6Lal mani Grandfather name : Lal mani Father name : Rampal Son name : Prince3 8 9 0 01This function is in parent class. This function is in child 1. This function is in parent class. This function is in child 2.5 6This function is in parent class. This function is in child class.7 05 6 07 08 6 10 11 6 13 14Output: Father : RAM Mother : SITA Thừa kế đa cấp & nbsp ;: :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 tiếp tục di truyền vào lớp dẫn xuất mới. Điều này tương tự như một mối quan hệ đại diện cho một đứa trẻ và một ông nội. & Nbsp; Example: Python3 1 16 3 4 19 6 21 8 6 24 6 26 1 28 3 4 19 6 33 8 6 36 6 38 8 40 6 42 1 44 3 4 19 6 49 8 6 522____46 54 8 56 6 58 3 4 61 6 7 8 9 0 67This function is in parent class. This function is in child 1. This function is in parent class. This function is in child 2.5 6 70 8 9 0 74This function is in parent class. This function is in child 1. This function is in parent class. This function is in child 2.5 6Lal mani Grandfather name : Lal mani Father name : Rampal Son name : Prince3 8 9 0 81This function is in parent class. This function is in child 1. This function is in parent class. This function is in child 2.5 6 84 05 6 87 88This function is in parent class. This function is in child 1. This function is in parent class. This function is in child 2.5____190 This function is in parent class. This function is in child 1. This function is in parent class. This function is in child 2.5__192 9 95 96Output: Lal mani Grandfather name : Lal mani Father name : Rampal Son name : Prince Di truyền phân cấp: & nbsp;Khi nhiều hơn một lớp dẫn xuất được tạo ra từ một cơ sở duy nhất, loại thừa kế này được gọi là kế thừa phân cấp. Trong chương trình này, chúng tôi có một lớp cha mẹ (cơ sở) và hai lớp (có nguồn gốc). Example: Python3 1 2 3 4 5 6 7 1 4 3 4 7 6 7 3 4 7 6 7 8 9 0 19 2 1 6 7Nhiều kế thừa: & nbsp; 8 9 0 31 2Khi một lớp có thể được lấy từ nhiều lớp cơ sở, loại thừa kế này được gọi là nhiều kế thừa. Trong nhiều kế thừa, tất cả các tính năng của các lớp cơ sở được kế thừa vào lớp dẫn xuất. & NBSP; 1 [3 39 40 41 42Output: This function is in parent class. This function is in child 1. This function is in parent class. This function is in child 2. # Output: True
print(issubclass(list,object))
# Output: True
print(isinstance(5.5,object))
# Output: True
print(isinstance("Hello",object))3[ |