Quá tải và ghi đè trong ví dụ Python

Trong bài viết này, chúng ta sẽ thảo luận về nạp chồng phương thức và ghi đè phương thức. Cả hai khái niệm là loại đa hình. Đa hình là một khái niệm từ lập trình hướng đối tượng [OOP] mà cùng một phương thức hoạt động cho thấy các đặc điểm khác nhau

Quá tải phương thức

Nói một cách đơn giản, nạp chồng có nghĩa là chúng ta có cùng tên phương thức nhưng các đối số khác nhau hoặc số lượng đối số hoặc loại đối số khác nhau. Nhưng khái niệm nạp chồng phương thức không có trong python, đó là chúng ta không thể tạo hai phương thức có cùng tên trong cùng một lớp

Chúng tôi sẽ giúp bạn hiểu cách nạp chồng phương thức trong python

class student:

def sum[self,a, b]:
s = a+b

return s

s1 = student[]
print[s1.sum[2,3]]
#output:
5

Phương thức lớp đơn giản này có một phương thức gọi là tổng chấp nhận hai tham số 'a' và 'b' sau khi truyền các giá trị, chúng tôi nhận được kết quả '5'. Nhưng nếu chúng ta vượt qua ba giá trị thì nó sẽ báo lỗi

class student:

def sum[self,a, b]:
s = a+b

return s

s1 = student[]
print[s1.sum[2,3,4]]
#output:
TypeError: sum[] takes 2 positional arguments but 4 were given

Mặt khác, chúng tôi đã chuyển hai giá trị cho ba đối số, nó báo lỗi

class student:

def sum[self, a,b,c]:
s = a+b+c

return s

s1 = student[]
print[s1.sum[2,3]]
#output:
TypeError: sum[] missing 1 required positional argument: 'c'

Vì vậy, vì điều này, chúng tôi tạo một phương thức bổ sung để chấp nhận ba giá trị trong các ngôn ngữ khác nhưng trong python, chúng tôi có thể thực hiện theo cách khác như trong ví dụ bên dưới

Chúng ta có thể sử dụng 'Không' làm giá trị mặc định của các đối số hoặc chúng ta cũng có thể sử dụng các đối số có độ dài thay đổi

class student:

def sum[self,a=None, b=None, c=None]:
s = 0

if a!=None and b!=None and c!=None:
s = a+b+c

elif a!=None and b!=None:
s = a+b

else:
s = a

return s
s1 = student[]
print[s1.sum[4,2,5]]
#output:
11

Phương thức lớp này sẽ hoạt động ngay cả khi chúng ta không chuyển bất kỳ giá trị nào cho các đối số

Khái niệm OOP trong Python

OOPs là một cách viết chương trình hiệu quả cao

quán rượu. hướng về ai. mạng lưới

7 mẹo dành cho người mới bắt đầu giúp bạn học Python tốt hơn

Stey-by-step chủ đề để trở thành một con trăn chuyên nghiệp

quán rượu. hướng về ai. mạng lưới

Ghi đè phương thức

Trong ghi đè phương thức, chúng ta có cùng tên phương thức với cùng số lượng đối số nhưng không cùng lớp để khái niệm kế thừa xuất hiện trong bức tranh

Khái niệm ghi đè phương thức rất quan trọng trong ngành công nghiệp phần mềm

class apple:

def fruit[self]:
print["You are eating Apple"]
class orange:
pass

f = orange[]
f.fruit[]
#output:
AttributeError: 'orange' object has no attribute 'fruit'

Trong ví dụ trên, chúng ta có thể quan sát thấy lớp màu cam không có phương thức fruit nên nó báo lỗi

Điều gì sẽ xảy ra nếu chúng ta có thể sử dụng khái niệm thừa kế như lớp cha và lớp con để kế thừa tất cả các thuộc tính của lớp cha?. Trong ví dụ này, chúng ta sẽ đặt quả táo làm lớp cha và màu cam làm lớp con

class apple:

def fruit[self]:
print["You are eating Apple"]
class orange[apple]:
pass

f = orange[]
f.fruit[]
#output:
You are eating Apple

Ở ví dụ trên, đối tượng tìm kiếm câu trong phương thức của lớp cam trước, nó không tìm thấy nhưng phương thức màu cam kế thừa tất cả các thuộc tính của lớp apple sau đó đối tượng tìm đến lớp apple để kiểm tra phương thức fruit

Chúng ta có thể tạo phương thức trái cây tương tự trong lớp màu cam như trong ví dụ bên dưới

class apple:

def fruit[self]:
print["You are eating Apple"]
class orange:

def fruit[self]:
print["You are eating Orange"]

f = orange[]
f.fruit[]
#output:
You are eating Orange

Lần này, đối tượng tìm thấy phương thức trái cây trong lớp màu cam

Sự kết luận

Hai khái niệm này rất hữu ích trong phát triển phần mềm để giảm bớt các chức năng làm việc trong phần mềm

Ví dụ về ghi đè và quá tải trong Python là gì?

Quá tải phương thức là xác định hai hoặc nhiều phương thức có cùng tên nhưng khác tham số . Python không hỗ trợ nạp chồng phương thức. Ghi đè phương thức là định nghĩa lại một phương thức của lớp cha trong lớp dẫn xuất. Ghi đè yêu cầu kế thừa để thực hiện.

Quá tải và ghi đè bằng ví dụ là gì?

Khi chữ ký phương thức [tên và tham số] giống nhau trong lớp cha và lớp con, nó được gọi là ghi đè. Khi hai hoặc nhiều phương thức trong cùng một lớp có cùng tên nhưng khác tham số, nó được gọi là quá tải

Quá tải trong Python với ví dụ là gì?

Ví dụ: toán tử + sẽ thực hiện phép cộng số học trên hai số, hợp nhất hai danh sách hoặc nối hai chuỗi. Tính năng này trong Python cho phép cùng một toán tử có ý nghĩa khác nhau tùy theo ngữ cảnh được gọi là nạp chồng toán tử.

Đây có phải là một ví dụ về quá tải hoặc ghi đè không?

Quá tải vs Ghi đè. Sự khác biệt giữa Nạp chồng Phương thức và Ghi đè Phương thức

Chủ Đề