Ví dụ sau minh họa cách lớp dẫn xuất có thể gọi lớp cơ sở bằng cách sử dụng phương thức super[]
Ví dụ
Sao chépclass person:
def __init__[self, firstname, lastname]:
self.firstname = firstname
self.lastname = lastname
def fullname[self]:
print[firstname, ' ', lastname]
class student[person]:
def __init__[self, firstname, lastname, grade]:
self.grade = grade
super[].__init__[firstname, lastname] # calling base constructor
def display_details[]:
super[].fullname[] # calling base class method
print['Grade ', self.grade]
std = student['James', 'Bond', '10']
std.display_details[]
đầu ra
James Bond
Grade 10
Trong ví dụ trên, super[].__init__[firstname, lastname]
trong phương thức init của lớp student
gọi phương thức init của lớp cơ sở person và truyền tham số. Theo cách tương tự, super[].fullname[]
gọi phương thức person.fullname[]
. super[].fullname[]
có thể được gọi là
class person:
def __init__[self, firstname, lastname]:
self.firstname = firstname
self.lastname = lastname
def fullname[self]:
print[firstname, ' ', lastname]
class student[person]:
def __init__[self, firstname, lastname, grade]:
self.grade = grade
super[].__init__[firstname, lastname] # calling base constructor
def display_details[]:
super[].fullname[] # calling base class method
print['Grade ', self.grade]
std = student['James', 'Bond', '10']
std.display_details[]
0 Như chúng ta đã biết Python là một ngôn ngữ lập trình hướng đối tượng. Do đó, Python tuân theo tất cả các khái niệm về OOP và một trong những khái niệm đó là tính kế thừa
Trong khi sử dụng khái niệm kế thừa, chúng ta có thể tham chiếu đến một lớp cha bằng cách sử dụng hàm super[] bên trong lớp kế thừa hoặc lớp con. Hàm super[] mà chúng ta sử dụng trong lớp con trả về một đối tượng được tạo tạm thời của lớp cha, cho phép chúng ta truy cập tất cả các phương thức của nó có trong lớp con
Lợi ích của hàm super[]
Sau đây là những lợi ích của việc sử dụng hàm super[] trong lớp con
- Chúng ta không cần nhớ tên lớp cha khi sử dụng hàm super[]. Điều này là do chúng ta không phải chỉ định tên của lớp cha để truy cập các phương thức có trong nó
- Chúng ta có thể sử dụng hàm super[] với đơn thừa kế và đa thừa kế
- Hàm super[] trong Python thực hiện khả năng sử dụng lại mã và mô đun hóa vì chúng ta không cần phải viết lại toàn bộ hàm nhiều lần
- Hàm super[] trong Python được gọi là hàm động, như chúng ta đều biết Python là ngôn ngữ lập trình kiểu động
Những ràng buộc khi sử dụng hàm super[]
Sau đây là ba ràng buộc mà chúng ta phải tuân theo để sử dụng hàm super[] trong chương trình Python
- Các đối số được đưa ra trong hàm super[] và các đối số trong hàm mà chúng ta đã gọi phải khớp với nhau
- Mỗi lần xuất hiện của phương thức mà chúng tôi đang sử dụng phải bao gồm từ khóa super[] sau khi chúng tôi sử dụng nó
- Chúng ta phải chỉ định lớp và các phương thức có trong nó, được gọi bởi hàm super[]
Bây giờ, như chúng ta đã biết, chúng ta có thể sử dụng hàm super[] trong cả hai kiểu thừa kế trong Python, tôi. e. , đơn lẻ cũng như đa thừa kế. Vì vậy, chúng ta sẽ tìm hiểu về cách sử dụng hàm super[] trong cả hai kiểu thừa kế riêng biệt và với một ví dụ
Sử dụng hàm super[] trong kế thừa đơn trong Python
Trong ví dụ này, chúng tôi sẽ sử dụng động vật làm tham chiếu cho một ví dụ thừa kế duy nhất
Mèo, ngựa, bò, chó, v.v. , tất cả đều thuộc lớp động vật. Tất cả chúng đều có chung một số đặc điểm
- Tất cả chúng đều là thú cưng
- Tất cả chúng đều có bốn chân và một cái đuôi
- Là một phần của lớp động vật, tất cả chúng đều là động vật có vú
Vì vậy, chúng ta có thể nói rằng lớp mèo, lớp ngựa và lớp chó là các lớp con của lớp động vật. Đây là một ví dụ về kế thừa đơn vì tất cả các lớp con [lớp mèo, lớp ngựa và lớp chó] chỉ được kế thừa từ một lớp cha duy nhất, i. e. , lớp động vật. Bây giờ, hãy xem chương trình sau
Ví dụ -
đầu ra
The given animal is a mammal type. The given animal is a domestic animal type. The given animal has four legs and a tail.
Giải trình
Trong đoạn mã trên, chúng ta đã định nghĩa động vật là lớp cha và kế thừa lớp gia đình, đuôi & chân và động vật có vú từ lớp đó. Sau đó, chúng ta đã định nghĩa lớp mèo, ngựa và chó và sử dụng siêu hàm trong đó. Với sự trợ giúp của hàm super[] trong các lớp này, chúng ta đã truy cập các phương thức của lớp động vật trong lớp mèo, ngựa và chó
Sử dụng hàm super[] trong nhiều kế thừa trong Python
Trong ví dụ này, chúng ta sẽ sử dụng một lớp cha, i. e. , lớp thú. Sau đó, chúng ta sẽ kế thừa các lớp 'Có thể bay' và 'Có thể bơi' từ lớp động vật có vú
Các lớp này sẽ đại diện cho việc một động vật có vú nhất định có thể bay hay không và có thể bơi hay không. Sau đó, chúng tôi sẽ xác định một lớp động vật và nó sẽ kế thừa từ cả hai lớp 'Có thể bay' và 'Có thể bơi' và trả về cho chúng tôi rằng con vật đã cho có các đặc điểm đã xác định hay không
Vì vậy, chúng ta có thể thấy rằng lớp động vật mà chúng ta đang sử dụng ở đây được kế thừa từ nhiều lớp cơ sở và do đó, nó là một ví dụ về tính đa kế thừa trong Python. Bây giờ, hãy xem chương trình sau
Ví dụ
đầu ra
Cat is not capable of flying Cat is not capable of swimming Cat Is a mammal of animalia class
Giải trình
Trong đoạn mã trên, chúng tôi đã định nghĩa động vật có vú là một lớp cha. Sau đó, chúng ta kế thừa các lớp có thể bay và có thể bơi từ lớp động vật có vú. Chúng tôi đã sử dụng các phương thức của cả hai có thể bay và có thể bơi bên trong lớp động vật với sự trợ giúp của hàm super[]. Lớp động vật được kế thừa từ cả lớp biết bơi và biết bay