Đa hình trong Python với VÍ DỤ

Đa hình là gì?

Đa hình có thể được định nghĩa là một tình trạng xảy ra dưới nhiều hình thức khác nhau. Đó là một khái niệm trong Python lập trình trong đó một đối tượng được xác định trong Python có thể được sử dụng theo những cách khác nhau. Nó cho phép lập trình viên định nghĩa nhiều phương thức trong một lớp dẫn xuất và có cùng tên với tên trong lớp cha. Những kịch bản như vậy hỗ trợ việc nạp chồng phương thức trong Python.

Đa hình trong Operaxoắn

Một nhà điều hành trong Python giúp thực hiện toán học và một số nhiệm vụ lập trình khác. Ví dụ, toán tử '+' giúp thực hiện phép cộng giữa hai kiểu số nguyên trong Pythonvà theo cách tương tự, toán tử tương tự giúp nối các chuỗi trong Python lập trình.

Chúng ta hãy lấy một ví dụ về + (cộng) nhà điều hành trong Python để hiển thị một ứng dụng của Đa hình trong Python như hình dưới đây:

Python Mã Code:

p = 55
q = 77
r = 9.5
g1 = "Guru"
g2 = "99!"
print("the sum of two numbers",p + q)
print("the data type of result is",type(p + q))
print("The sum of two numbers",q + r)
print("the data type of result is", type (q + r))
print("The concatenated string is", g1 + g2)
print("The data type of two strings",type(g1 + g2))

Đầu ra:

the sum of two numbers 132
the data type of result is <class 'int'>

The sum of the two numbers 86.5
the data type of result is <class 'float'>

The concatenated string is Guru99!
The data type of two strings <class 'str'>

Ví dụ trên cũng có thể được coi là ví dụ về nạp chồng toán tử.

Đa hình trong các phương thức do người dùng định nghĩa

Một phương thức do người dùng định nghĩa trong Python Ngôn ngữ lập trình là các phương thức do người dùng tạo ra và nó được khai báo bằng từ khóa def cùng với tên hàm.

Tính đa hình trong Python ngôn ngữ lập trình đạt được thông qua việc nạp chồng và ghi đè phương thức. Python định nghĩa các phương thức với từ khóa def và có cùng tên trong cả lớp con và lớp cha.

Chúng ta hãy lấy ví dụ sau đây như được hiển thị bên dưới: –

Python Mã Code:

from math
import pi
class square:
    def __init__(self, length):
    self.l = length
def perimeter(self):
    return 4 * (self.l)
def area(self):
    return self.l * self.l
class Circle:
    def __init__(self, radius):
    self.r = radius
def perimeter(self):
    return 2 * pi * self.r
def area(self):
    return pi * self.r * * 2
# Initialize the classes
sqr = square(10)
c1 = Circle(4)
print("Perimeter computed for square: ", sqr.perimeter())
print("Area computed for square: ", sqr.area())
print("Perimeter computed for Circle: ", c1.perimeter())
print("Area computed for Circle: ", c1.area())

Đầu ra:

Perimeter computed for square:  40
Area computed for square:  100
Perimeter computed for Circle:  25.132741228718345
Area computed for Circle:  50.26548245743669

Trong đoạn mã trên, có hai phương thức do người dùng định nghĩa, chu vi và diện tích, được định nghĩa trong các lớp hình tròn và hình vuông.

Như được hiển thị ở trên, cả lớp hình tròn và lớp hình vuông đều gọi cùng một tên phương thức hiển thị đặc tính Đa hình để cung cấp đầu ra được yêu cầu.

Đa hình trong hàm

Các hàm tích hợp trong Python được thiết kế và làm tương thích để thực hiện một số loại dữ liệu. TRONG Python, Len() là một trong những chức năng tích hợp chính.

Nó hoạt động trên một số loại dữ liệu: danh sách, bộ dữ liệu, chuỗi và từ điển. Hàm Len() trả về thông tin xác định được căn chỉnh phù hợp với nhiều loại dữ liệu này.

Hình sau đây cho thấy cách Đa hình có thể được áp dụng trong Python liên quan đến các chức năng được xây dựng sẵn: –

Đa hình trong hàm

Chương trình sau đây giúp minh họa ứng dụng của Đa hình trong Python: -

Python Mã Code:

print ("The length of string Guru99 is ",len("Guru99"))
print("The length of list is ",len(["Guru99","Example","Reader"]))
print("The length of dictionary is ",len({"Website name":"Guru99","Type":"Education"}))

Đầu ra:

The length of string Guru99 is 6
The length of the list is 3
The length of the dictionary is 2

Đa hình trong hàm

Trong ví dụ trên, hàm Len() của Python thực hiện Đa hình cho các kiểu dữ liệu chuỗi, danh sách và từ điển tương ứng.

Đa hình và kế thừa

Kế thừa ở Python có thể được định nghĩa là khái niệm lập trình trong đó một lớp con được xác định các thuộc tính kế thừa từ một lớp cơ sở khác có trong Python.

Có hai chìa khóa Python các khái niệm được gọi là ghi đè phương thức và quá tải phương thức.

  • Trong quá tải phương thức, Python cung cấp tính năng tạo các phương thức có cùng tên để thực hiện hoặc thực thi các chức năng khác nhau trong một đoạn mã nhất định. Nó cho phép nạp chồng các phương thức và sử dụng chúng để thực hiện các tác vụ khác nhau theo cách đơn giản hơn.
  • Trong ghi đè Phương thức, Python ghi đè giá trị có tên tương tự trong lớp cha và lớp con.

Chúng ta hãy lấy ví dụ sau về Đa hình và kế thừa như được hiển thị bên dưới: –

Python Mã Code:

class baseclass:
    def __init__(self, name):
    self.name = name
def area1(self):
    pass
def __str__(self):
    return self.name
class rectangle(baseclass):
    def __init__(self, length, breadth):
    super().__init__("rectangle")
self.length = length
self.breadth = breadth
def area1(self):
    return self.length * self.breadth
class triangle(baseclass):
    def __init__(self, height, base):
    super().__init__("triangle")
self.height = height
self.base = base
def area1(self):
    return (self.base * self.height) / 2
a = rectangle(90, 80)
b = triangle(77, 64)
print("The shape is: ", b)
print("The area of shape is", b.area1())
print("The shape is:", a)
print("The area of shape is", a.area1())

Đầu ra:

The shape is: a triangle
The area of a shape is 2464.0

The shape is: a rectangle
The area of a shape is 7200

Trong đoạn mã trên, các phương thức có cùng tên được định nghĩa là phương thức init và phương thức Area1. Sau đó, đối tượng của lớp hình vuông và hình chữ nhật được sử dụng để gọi hai phương thức nhằm thực hiện các tác vụ khác nhau và cung cấp đầu ra về diện tích hình vuông và hình chữ nhật.

Đa hình với các phương thức lớp

Sản phẩm Python lập trình cho phép các lập trình viên đạt được Đa hình và nạp chồng phương thức bằng các phương thức lớp. Các lớp khác nhau trong Python có thể có các phương thức được khai báo cùng tên trên toàn bộ Python Mã.

In Python, hai lớp khác nhau có thể được định nghĩa. Một là lớp con và nó lấy các thuộc tính từ một lớp được xác định khác gọi là lớp cha.

Ví dụ sau minh họa khái niệm Đa hình với các phương thức lớp: –

Python Mã Code:

class amazon:
    def __init__(self, name, price):
    self.name = name
self.price = price
def info(self):
    print("This is product and am class is invoked. The name is {self.name}. This costs {self.price} rupees.")
class flipkart:
    def __init__(self, name, price):
    self.name = name
self.price = price
def info(self):
    print(f "This is product and fli class is invoked. The name is {self.name}. This costs {self.price} rupees.")
FLP = flipkart("Iphone", 2.5)
AMZ = amazon("Iphone", 4)
for product1 in (FLP, AMZ):
    product1.info()

Đầu ra:

This is a product, and fli class is invoked. The name is iPhone, and this costs 2.5 rupees.
This is a product, and am class is invoked. The name is iPhone, and this costs 4 rupees.

Trong đoạn mã trên, hai lớp khác nhau có tên là flipkart và amazon sử dụng cùng tên phương thức info và init để cung cấp báo giá tương ứng của sản phẩm và minh họa thêm khái niệm Đa hình trong Python.

Sự khác biệt giữa nạp chồng phương thức và đa hình thời gian biên dịch

Trong Đa hình thời gian biên dịch, trình biên dịch của Python chương trình giải quyết cuộc gọi. Đa hình thời gian biên dịch được thực hiện thông qua việc nạp chồng phương thức.

Sản phẩm Python trình biên dịch không giải quyết các lệnh gọi trong thời gian chạy cho tính đa hình. Nó cũng được phân loại là ghi đè phương thức trong đó các phương thức giống nhau mang chữ ký hoặc thuộc tính tương tự, nhưng chúng tạo thành một phần của các lớp khác nhau.

Tổng kết

  • Đa hình có thể được định nghĩa là một tình trạng xảy ra dưới nhiều hình thức khác nhau.
  • Một nhà điều hành trong Python giúp thực hiện toán học và một số nhiệm vụ lập trình khác.
  • Một phương thức do người dùng định nghĩa trong Python Ngôn ngữ lập trình là các phương thức do người dùng tạo ra và nó được khai báo bằng từ khóa def cùng với tên hàm.
  • Đa hình trong Python cung cấp một số đặc tính mong muốn, chẳng hạn như thúc đẩy khả năng tái sử dụng các mã được viết cho các lớp và phương thức khác nhau.
  • Lớp con là lớp dẫn xuất và nó nhận các thuộc tính từ lớp cha.
  • Tính đa hình cũng đạt được thông qua ghi đè phương thức thời gian chạy và nạp chồng phương thức thời gian biên dịch.
  • Đa hình trong Python cũng đạt được thông qua việc quá tải toán tử và phương thức lớp.