Làm thế nào để bạn hiển thị tính kế thừa trong python?

Trong bài viết này, bạn sẽ tìm hiểu về thừa kế Python. Bạn sẽ hiểu sâu hơn về cách một lớp bắt nguồn từ một lớp khác kế thừa các tính năng của nó

Kế thừa trong Python

Kế thừa, như tên cho thấy, là một quá trình kế thừa các tính năng

Đây là một kỹ thuật xây dựng các lớp mới được gọi là lớp dẫn xuất từ ​​lớp hiện có được gọi là lớp cơ sở bằng cách kế thừa các tính năng của lớp cơ sở. Các tính năng bao gồm các thuộc tính và phương pháp hành vi khác nhau

Nhìn hình này để hiểu rõ hơn

Làm thế nào để bạn hiển thị tính kế thừa trong python?

Kế thừa là một trong những tính năng mạnh mẽ của OOP. Trong lớp dẫn xuất, chúng ta có thể thêm các tính năng bổ sung và cũng có thể ghi đè các thành viên dữ liệu và phương thức từ lớp cha

Ví dụ: nếu phương tiện là lớp cha, thì ô tô, xe buýt và xe tải là các lớp dẫn xuất được kế thừa tất cả các tính năng của lớp cha phương tiện với nhiều tính năng bổ sung hơn.

Cú pháp kế thừa Python

class derived_class_name(base_class_name):
  ##Body of the derived class

Ví dụ kế thừa Python

Hãy lấy Xe làm lớp cha từ đó chúng ta sẽ lấy được một lớp Thể loại. Lớp Category sẽ kế thừa các tính năng của lớp cha Xe và cũng gọi hàm từ lớp cha

Đây là mã

class Vehicle:   #parent class
  "Parent Class"
  def __init__(self, price):
    self.price = price
  def display(self):
    print ('Price = $',self.price)

class Category(Vehicle):   #derived class
   "Child/Derived class"
   def __init__(self, price, name):
     Vehicle.__init__(self, price)
     self.name = name

   def disp_name(self):
     print ('Vehicle = ',self.name)

obj = Category(1200, 'BMW')
obj.disp_name()
obj.display()

đầu ra

Vehicle = BMW
Price = $1200

 

Ở đây trong chương trình, chúng ta chỉ khởi tạo lớp dẫn xuất Category. Vì Danh mục là lớp con của Phương tiện, chúng ta có thể sử dụng hàm

class Vehicle:   #parent class
  "Parent Class"
  def __init__(self, price):
    self.price = price
  def display(self):
    print ('Price = $',self.price)

class Category(Vehicle):   #derived class
   "Child/Derived class"
   def __init__(self, price, name):
     Vehicle.__init__(self, price)
     self.name = name

   def disp_name(self):
     print ('Vehicle = ',self.name)

obj = Category(1200, 'BMW')
obj.disp_name()
obj.display()
8 của lớp cơ sở bằng cách sử dụng đối tượng của lớp dẫn xuất

Python isinstance() và issubclass()

Các hàm

class Vehicle:   #parent class
  "Parent Class"
  def __init__(self, price):
    self.price = price
  def display(self):
    print ('Price = $',self.price)

class Category(Vehicle):   #derived class
   "Child/Derived class"
   def __init__(self, price, name):
     Vehicle.__init__(self, price)
     self.name = name

   def disp_name(self):
     print ('Vehicle = ',self.name)

obj = Category(1200, 'BMW')
obj.disp_name()
obj.display()
9 hoặc
Vehicle = BMW
Price = $1200
0 trong Python dùng để kiểm tra mối quan hệ của 2 class và instance

  • issubclass() được sử dụng để kiểm tra tính kế thừa của lớp. Ví dụ,
    class Vehicle:   #parent class
      "Parent Class"
      def __init__(self, price):
        self.price = price
      def display(self):
        print ('Price = $',self.price)
    
    class Category(Vehicle):   #derived class
       "Child/Derived class"
       def __init__(self, price, name):
         Vehicle.__init__(self, price)
         self.name = name
    
       def disp_name(self):
         print ('Vehicle = ',self.name)
    
    obj = Category(1200, 'BMW')
    obj.disp_name()
    obj.display()
    
    0 sẽ chỉ trả về true nếu
    class Vehicle:   #parent class
      "Parent Class"
      def __init__(self, price):
        self.price = price
      def display(self):
        print ('Price = $',self.price)
    
    class Category(Vehicle):   #derived class
       "Child/Derived class"
       def __init__(self, price, name):
         Vehicle.__init__(self, price)
         self.name = name
    
       def disp_name(self):
         print ('Vehicle = ',self.name)
    
    obj = Category(1200, 'BMW')
    obj.disp_name()
    obj.display()
    
    1 là lớp con của
    class Vehicle:   #parent class
      "Parent Class"
      def __init__(self, price):
        self.price = price
      def display(self):
        print ('Price = $',self.price)
    
    class Category(Vehicle):   #derived class
       "Child/Derived class"
       def __init__(self, price, name):
         Vehicle.__init__(self, price)
         self.name = name
    
       def disp_name(self):
         print ('Vehicle = ',self.name)
    
    obj = Category(1200, 'BMW')
    obj.disp_name()
    obj.display()
    
    2.
    >>> issubclass(Category, Vehicle)
    True
    >>> issubclass(Vehicle, Category) #Vehicle is not subclass of Category
    False
    >>> issubclass(1, int) #1 belongs to class int
    True
  • isinstance( ) được sử dụng để kiểm tra thể hiện của một lớp. Ví dụ:
    class Vehicle:   #parent class
      "Parent Class"
      def __init__(self, price):
        self.price = price
      def display(self):
        print ('Price = $',self.price)
    
    class Category(Vehicle):   #derived class
       "Child/Derived class"
       def __init__(self, price, name):
         Vehicle.__init__(self, price)
         self.name = name
    
       def disp_name(self):
         print ('Vehicle = ',self.name)
    
    obj = Category(1200, 'BMW')
    obj.disp_name()
    obj.display()
    
    3 sẽ chỉ trả về true nếu
    class Vehicle:   #parent class
      "Parent Class"
      def __init__(self, price):
        self.price = price
      def display(self):
        print ('Price = $',self.price)
    
    class Category(Vehicle):   #derived class
       "Child/Derived class"
       def __init__(self, price, name):
         Vehicle.__init__(self, price)
         self.name = name
    
       def disp_name(self):
         print ('Vehicle = ',self.name)
    
    obj = Category(1200, 'BMW')
    obj.disp_name()
    obj.display()
    
    4 là thể hiện của
    class Vehicle:   #parent class
      "Parent Class"
      def __init__(self, price):
        self.price = price
      def display(self):
        print ('Price = $',self.price)
    
    class Category(Vehicle):   #derived class
       "Child/Derived class"
       def __init__(self, price, name):
         Vehicle.__init__(self, price)
         self.name = name
    
       def disp_name(self):
         print ('Vehicle = ',self.name)
    
    obj = Category(1200, 'BMW')
    obj.disp_name()
    obj.display()
    
    5 hoặc của bất kỳ lớp nào bắt nguồn từ
    class Vehicle:   #parent class
      "Parent Class"
      def __init__(self, price):
        self.price = price
      def display(self):
        print ('Price = $',self.price)
    
    class Category(Vehicle):   #derived class
       "Child/Derived class"
       def __init__(self, price, name):
         Vehicle.__init__(self, price)
         self.name = name
    
       def disp_name(self):
         print ('Vehicle = ',self.name)
    
    obj = Category(1200, 'BMW')
    obj.disp_name()
    obj.display()
    
    6.
    class Vehicle:   #parent class
      "Parent Class"
      def __init__(self, price):
        self.price = price
      def display(self):
        print ('Price = $',self.price)
    
    class Category(Vehicle):   #derived class
       "Child/Derived class"
       def __init__(self, price, name):
         Vehicle.__init__(self, price)
         self.name = name
    
       def disp_name(self):
         print ('Vehicle = ',self.name)
    
    obj = Category(1200, 'BMW')
    obj.disp_name()
    obj.display()
    
    1

Ghi đè các phương thức trong kế thừa Python

Đôi khi chúng ta cần thay đổi hoạt động chức năng của một phương thức được định nghĩa trong lớp cơ sở. Thay vì thay đổi phương thức trong lớp cơ sở, chúng ta có thể định nghĩa cùng chức năng đó trong lớp dẫn xuất và thay đổi mã. Chức năng của lớp cơ sở bị ghi đè bởi chức năng của lớp dẫn xuất

Để ghi đè một phương thức trong lớp cơ sở, chúng ta phải định nghĩa một phương thức mới có cùng tên và cùng tham số trong lớp dẫn xuất

Đây là một ví dụ

class Vehicle:   #parent class
  "Parent Class"
  def __init__(self, price):
    self.price = price
  def display(self):
    print ('Price = $',self.price)

class Category(Vehicle):   #derived class
   "Child/Derived class"
   def __init__(self, price, name):
     Vehicle.__init__(self, price)
     self.name = name

   def disp_name(self):
     print ('Vehicle = ',self.name)

obj = Category(1200, 'BMW')
obj.disp_name()
obj.display()
2

đầu ra

class Vehicle:   #parent class
  "Parent Class"
  def __init__(self, price):
    self.price = price
  def display(self):
    print ('Price = $',self.price)

class Category(Vehicle):   #derived class
   "Child/Derived class"
   def __init__(self, price, name):
     Vehicle.__init__(self, price)
     self.name = name

   def disp_name(self):
     print ('Vehicle = ',self.name)

obj = Category(1200, 'BMW')
obj.disp_name()
obj.display()
3

Lưu ý rằng cơ sở

class Vehicle:   #parent class
  "Parent Class"
  def __init__(self, price):
    self.price = price
  def display(self):
    print ('Price = $',self.price)

class Category(Vehicle):   #derived class
   "Child/Derived class"
   def __init__(self, price, name):
     Vehicle.__init__(self, price)
     self.name = name

   def disp_name(self):
     print ('Vehicle = ',self.name)

obj = Category(1200, 'BMW')
obj.disp_name()
obj.display()
5 và dẫn xuất
class Vehicle:   #parent class
  "Parent Class"
  def __init__(self, price):
    self.price = price
  def display(self):
    print ('Price = $',self.price)

class Category(Vehicle):   #derived class
   "Child/Derived class"
   def __init__(self, price, name):
     Vehicle.__init__(self, price)
     self.name = name

   def disp_name(self):
     print ('Vehicle = ',self.name)

obj = Category(1200, 'BMW')
obj.disp_name()
obj.display()
8 có cùng một phương pháp
class Vehicle:   #parent class
  "Parent Class"
  def __init__(self, price):
    self.price = price
  def display(self):
    print ('Price = $',self.price)

class Category(Vehicle):   #derived class
   "Child/Derived class"
   def __init__(self, price, name):
     Vehicle.__init__(self, price)
     self.name = name

   def disp_name(self):
     print ('Vehicle = ',self.name)

obj = Category(1200, 'BMW')
obj.disp_name()
obj.display()
9. Nhưng khi chúng ta gọi hàm với thể hiện của
class Vehicle:   #parent class
  "Parent Class"
  def __init__(self, price):
    self.price = price
  def display(self):
    print ('Price = $',self.price)

class Category(Vehicle):   #derived class
   "Child/Derived class"
   def __init__(self, price, name):
     Vehicle.__init__(self, price)
     self.name = name

   def disp_name(self):
     print ('Vehicle = ',self.name)

obj = Category(1200, 'BMW')
obj.disp_name()
obj.display()
8, hàm trong lớp cơ sở có cùng tên sẽ bị ghi đè bởi hàm trong lớp dẫn xuất

Kế thừa là gì và nó đạt được như thế nào trong Python?

Kế thừa là một tính năng mạnh mẽ trong lập trình hướng đối tượng. Nó đề cập đến việc xác định một lớp mới với ít hoặc không sửa đổi lớp hiện có. Lớp mới được gọi là lớp dẫn xuất (hoặc lớp con) và lớp mà nó kế thừa từ đó được gọi là lớp cơ sở (hoặc lớp cha)

Kế thừa đưa ra ví dụ trong Python là gì?

Mối quan hệ kế thừa xác định các lớp kế thừa từ các lớp khác dưới dạng lớp dẫn xuất, lớp con hoặc lớp con . Lớp cơ sở vẫn là nguồn mà lớp con kế thừa. Ví dụ: bạn có lớp Cơ sở là “Động vật” và “Sư tử” là lớp Dẫn xuất. Quyền thừa kế sẽ là Sư tử là một con vật.

Super() hoạt động như thế nào trong Python?

Hàm super() trong Python giúp kế thừa lớp dễ quản lý và mở rộng hơn. Hàm trả về một đối tượng tạm thời cho phép tham chiếu đến lớp cha bằng từ khóa super . Hàm super() có hai trường hợp sử dụng chính. Để tránh việc sử dụng lớp super (parent) một cách rõ ràng.

__ init __ trong Python là gì?

Phương thức __init__ là tương đương Python với hàm tạo C++ theo cách tiếp cận hướng đối tượng . Hàm __init__ được gọi mỗi khi một đối tượng được tạo từ một lớp. Phương thức __init__ cho phép lớp khởi tạo các thuộc tính của đối tượng và không phục vụ mục đích nào khác. Nó chỉ được sử dụng trong các lớp học.