Hướng dẫn program for multilevel inheritance in python - chương trình kế thừa đa cấp trong python

Giới thiệu về Di sản đa cấp trong Python

Trong Python, kế thừa đa cấp là một loại thừa kế được sử dụng để kế thừa cả hai lớp cơ sở và các tính năng lớp có nguồn gốc cho lớp mới có nguồn gốc Độ sâu của các lớp trong Python được gọi là kế thừa đa cấp. Trong khi kế thừa các phương pháp và thành viên của cả lớp cơ sở và lớp có nguồn gốc sẽ được kế thừa cho lớp mới có nguồn gốc. Bằng cách sử dụng kế thừa, chúng ta có thể đạt được khả năng tái sử dụng của mã, mối quan hệ giữa các lớp. Nếu chúng ta có ba lớp A, B và C trong đó A là siêu lớp [cha mẹ], B là lớp con [con] và C là lớp con của B [cháu].

Cú pháp thừa kế đa cấp

Hãy để chúng tôi nói rằng chúng tôi có ba lớp có tên là cơ sở, DRIVENT1 và DRIVENT2. Lớp cơ sở có các thành viên và chức năng của nó như dưới đây:

class base:
    //member of base class
   // functions of base class
    Pass
class derived1[base]:
   // members of derived1 class + base class
  // functions of derived1 class + base class
   pass
class derived2[derived1]:
   // members of derived2 class + derived1 class + base class
  // functions of derived2 class + derived1 class + base class
   Pass

Trong ví dụ lớp trên, chúng ta có thể thấy rằng cơ sở lớp là lớp cơ sở và lớp có nguồn gốc được kế thừa từ cơ sở lớp và lớp dẫn xuất2 được kế thừa từ lớp dẫn xuất1.

Làm thế nào kế thừa đa cấp hoạt động trong Python?

Trong Python, kế thừa đa cấp hoạt động như dưới đây. Chúng ta hãy giải thích kế thừa đa cấp với một ví dụ như dưới đây:

class Parent:
   def __init__[self,name]:
     self.name = name
   def getName[self]:
     return self.name
class Child[Parent]:
   def __init__[self,name,age]:
     Parent.__init__[self,name]
     self.age = age
   def getAge[self]:
     return self.age
class Grandchild[Child]:
   def __init__[self,name,age,location]:
     Child.__init__[self,name,age]
     self.location=location
   def getLocation[self]:
     return self.location
gc = Grandchild["Srinivas",24,"Hyderabad"]
print[gc.getName[], gc.getAge[], gc.getLocation[]]

Trong ví dụ kế thừa đa cấp ở trên, chúng tôi có ba lớp có tên là cha mẹ, con và cháu. Lớp cha là một lớp cơ sở có một hàm tạo đang gán một tên và một hàm getName []. Chúng ta có thể lấy tên của cháu bằng cách sử dụng chức năng này. Trẻ em có nguồn gốc được thừa hưởng từ cha mẹ lớp cơ sở với các thành viên của mình như một hàm tạo đang sử dụng hàm tạo lớp cơ sở để gán tên và gán tuổi ở đây. Nó có một chức năng getage [] để có được tuổi của những đứa trẻ nhất định. Bây giờ lớp này có các thành viên có các hàm getName [], getage [] và các hàm tạo của nó. Cháu lớp có nguồn gốc mới được thừa hưởng từ đứa trẻ lớp có nguồn gốc trước đây. Lớp dẫn xuất mới có các tính năng của cả cha mẹ cơ sở và các chức năng con có nguồn gốc và các thành viên là các tính năng của nó. Lớp mới có nguồn gốc có một hàm tạo đang sử dụng hàm tạo lớp trước đó và GetLocation [] Function GetLocation [] để có được vị trí của đứa trẻ đã cho.

Trong Python, kế thừa đa cấp, nếu cần tìm kiếm một chức năng cụ thể, một biến thành viên trước tiên, nó tìm kiếm trong lớp hiện tại, thì trong lớp cha của lớp hiện tại, và cuối cùng, lớp cơ sở như thứ tự này sẽ được tuân theo dựa trên chuyên sâu của các lớp học. Loại giải quyết thứ tự tìm kiếm lớp này được gọi là MRO [thứ tự phân giải phương thức] trong Python. Nó sẽ duy trì thứ tự ưu tiên địa phương và duy trì thứ tự giải quyết của các thành viên của lớp. Di truyền đa cấp được sử dụng để đạt được khả năng tái sử dụng mã, duy trì mối quan hệ giữa các lớp để đạt được lập trình hướng đối tượng.

Trong chương trình trên, chúng tôi đã tạo một đối tượng GC của cháu với các tham số như tên, tuổi và vị trí và đầu ra của chương trình trên như dưới đây:

Output:

Ví dụ về quyền thừa kế đa cấp trong Python

Chúng ta hãy xem xét các ví dụ khác nhau được đề cập dưới đây:

Chúng ta có thể đạt được sự kế thừa đa cấp bằng cách sử dụng hàm Super [] trong Python. Hàm Super [] cho phép tham khảo lớp cha của lớp hiện tại một cách rõ ràng vì trong các lớp con kế thừa được kế thừa từ siêu lớp. Các chức năng Super [] cho phép chúng tôi thực hiện dễ dàng kế thừa, đa, đa cấp.

Hãy cho chúng tôi xem một ví dụ về kế thừa đa cấp bằng Super [].

class xyz:
    def__init__[self]:
      print["hey, I am initialized , xyz"]
    def sub_xyz[self,b]:
      print["Printing from class xyz:",b]
class xyz1[xyz]:
   def __init__[self]:
     print["hey, I am initialized, xyz1"]
     super[].__init__[]
   def sub_xyz[self,b]:
     print["Printing from class xyz1:", b]
     super[].sub_xyz[b+1]
class xyz2[xyz1]:
   def __init__[self]:
     print["hey, I am initialized, xyz2"]
     super[].__init__[]
   def sub_xyz[self,b]:
     print["Printing from class xyz2:",b]
     super[].sub_xyz[b+1]
if __name__ == '__main__':
   ob =xyz2[]
   ob.sub_xyz[10]

Trong ví dụ trên về kế thừa đa cấp bằng cách sử dụng hàm Super [], chúng tôi đã tạo ra một đối tượng OB của lớp XYZ2 [] có nguồn gốc và gọi hàm sub_xyz [] từ lớp XYZ2 kế thừa cả hai lớp XYZ, XYZ1. Trong đầu ra của ví dụ trên, bạn có thể rõ ràng thứ tự mà Python đang gọi các lớp và cách giải quyết mối quan hệ giữa các lớp.

Trong ví dụ trên, chúng tôi có ba lớp XYZ, XYZ1 và XYZ2. Lớp XYZ có hàm tạo với câu lệnh in và hàm sub_xyz [] với hàm in. Tương tự, lớp XYZ1 được kế thừa từ lớp XYZ có hàm tạo trong đó câu lệnh in và hàm siêu với hàm tạo khởi tạo, function sub_xyz [] với tham số B với câu lệnh in và siêu [] gọi một tham số. Tương tự, lớp XYZ2 có nguồn gốc từ lớp XYZ1 với tất cả các chức năng thành viên tương tự như lớp XYZ1 có nguồn gốc trước đó với hàm tạo, hàm siêu với hàm tạo và hàm sub_xyz [] với hàm super [] gọi sub_xyz [] với một tham số.

Chúng tôi đã tạo một đối tượng OB của lớp dẫn xuất cuối cùng AB2 và được gọi là hàm sub_xyz [] với tham số là 10 gọi các hàm từ lớp dẫn xuất đến lớp cơ sở theo thứ tự từ dưới lên.

Đầu ra của chương trình trên là:

Sự kết luận

Cuối cùng, nó có tất cả về thừa kế đa cấp trong Python. Chúng tôi đã thảo luận về việc thừa kế đa cấp là gì, cú pháp của nó, cách thức kế thừa đa cấp hoạt động trong Python và các ví dụ về kế thừa đa cấp bằng cách sử dụng một chức năng siêu. Tôi hy vọng sau khi đọc bài viết này, bạn sẽ có thêm một số kiến ​​thức sau đó những gì bạn đã có và hiểu rõ hơn về kế thừa đa cấp và các kịch bản khi sử dụng.

Bài viết đề xuất

Đây là một hướng dẫn để thừa kế đa cấp trong Python. Ở đây chúng tôi thảo luận về phần giới thiệu về thừa kế đa cấp trong Python cùng với các ví dụ làm việc và tương ứng. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm -

  1. Vượt qua từ khóa trong Python
  2. Python mở rộng
  3. Bài kiểm tra đơn vị Python
  4. Thuộc tính lớp Python

Kế thừa đa cấp trong Python với ví dụ là gì?

Trong Python, kế thừa đa cấp là một loại thừa kế được sử dụng để kế thừa cả hai lớp cơ sở và các tính năng lớp có nguồn gốc cho lớp mới có nguồn gốc Độ sâu của các lớp học trong Python được gọi là ...one type of inheritance being used to inherit both base class and derived class features to the newly derived class when we inherit a derived class from a base class and another derived class from the previous derived class up to any extent of depth of classes in python is called ...

Kế thừa đa cấp với ví dụ lập trình là gì?

Di truyền đa cấp trong Java xảy ra khi một lớp mở rộng một lớp mở rộng lớp khác. Điều này được gọi là thừa kế đa cấp trong Java. Ví dụ: lớp C mở rộng lớp B và lớp B mở rộng lớp A.occurs when a class extends a class that extends another class. This is called multilevel Inheritance in java. For example, class C extends class B, and class B extends class A.

Cái nào là một ví dụ cho kế thừa đa cấp?

Trong kế thừa đa cấp, một lớp dẫn xuất sẽ kế thừa một lớp cơ sở và cũng như lớp dẫn xuất cũng đóng vai trò là lớp cơ sở cho lớp khác.Ví dụ, ba lớp được gọi là A, B và C, như được hiển thị trong hình ảnh dưới đây, trong đó lớp C có nguồn gốc từ lớp B và lớp B, có nguồn gốc từ lớp A.three classes called A, B, and C, as shown in the below image, where class C is derived from class B and class B, is derived from class A.

Python có cho phép thừa kế đa cấp không?

Có, Python hỗ trợ nhiều kế thừa.Giống như C ++, một lớp có thể được lấy từ nhiều lớp cơ sở trong Python.Điều này được gọi là nhiều kế thừa.. Like C++, a class can be derived from more than one base classes in Python. This is called Multiple Inheritance.

Chủ Đề