Hai phương thức không thể có cùng tên trong Python. Nạp chồng phương thức trong Python là một tính năng cho phép cùng một toán tử có ý nghĩa khác nhau. Trong bài viết này, chúng ta sẽ xem xét tính năng nạp chồng phương thức trong Python và cách nó được sử dụng để nạp chồng phương thức, theo trình tự sau
Quá tải là gì?
Nạp chồng là khả năng của một hàm hoặc một toán tử hành xử theo những cách khác nhau dựa trên các tham số được truyền cho hàm hoặc toán hạng mà toán tử tác động lên
Một số ưu điểm của việc sử dụng quá tải là
Quá tải một phương thức thúc đẩy khả năng sử dụng lại. Ví dụ, thay vì viết nhiều phương thức chỉ khác nhau một chút, chúng ta có thể viết một phương thức và nạp chồng nó
Quá tải cũng cải thiện độ rõ ràng của mã và loại bỏ sự phức tạp
Quá tải là một khái niệm rất hữu ích. Tuy nhiên, nó có một số nhược điểm liên quan đến nó
Quá tải có thể tạo ra sự nhầm lẫn khi được sử dụng trên các ranh giới thừa kế. Khi được sử dụng quá mức, việc quản lý các chức năng quá tải sẽ trở nên cồng kềnh
Trong Python, bạn có thể tạo một phương thức có thể được gọi theo nhiều cách khác nhau. Vì vậy, bạn có thể có một phương thức không có, có một hoặc nhiều tham số. Tùy thuộc vào định nghĩa phương thức, chúng ta có thể gọi nó bằng 0, một hoặc nhiều đối số
Với một phương thức hoặc chức năng duy nhất, số lượng tham số có thể được chỉ định bởi bạn. Quá trình gọi cùng một phương thức theo những cách khác nhau được gọi là nạp chồng phương thức
Bây giờ bạn đã biết nạp chồng phương thức trong Python là gì, hãy lấy một ví dụ. Ở đây, chúng ta tạo một lớp với một phương thức Hello[]. Tham số đầu tiên của phương thức này được đặt thành Không có. Điều này sẽ cung cấp cho chúng tôi tùy chọn để gọi nó có hoặc không có tham số
Một đối tượng cũng được tạo dựa trên lớp và chúng ta sẽ gọi phương thức của nó bằng cách sử dụng 0 và một tham số
ví dụ 1
#!/usr/bin/env python class Person: def Hello[self, name=None]: if name is not None: print['Hello ' + name] else: print['Hello '] # Create instance obj = Person[] # Call the method obj.Hello[] # Call the method with a parameter obj.Hello['Edureka']
đầu ra
Hello Hello Edureka
Để làm rõ việc nạp chồng phương thức, bây giờ chúng ta có thể gọi phương thức Hello[] theo hai cách
obj.Hello[] obj.Hello['Edureka']
Trong ví dụ trên, chúng ta đã tạo một phương thức có thể được gọi với ít đối số hơn so với định nghĩa cho phép. Ngoài ra, nó không giới hạn ở hai biến và phương thức của bạn có thể có nhiều biến hơn tùy chọn
Bây giờ hãy lấy một ví dụ khác để hiểu nạp chồng phương thức trong python
ví dụ 2
Trong ví dụ sau, chúng ta sẽ nạp chồng phương thức area. Nếu không có đối số thì nó trả về 0. Và, nếu chúng ta có một đối số thì nó trả về bình phương của giá trị và giả sử bạn đang tính diện tích hình vuông. Ngoài ra, nếu chúng ta có hai đối số thì nó trả về tích của hai giá trị và giả sử bạn đang tính diện tích hình chữ nhật
# class class Compute: # area method def area[self, x = None, y = None]: if x != None and y != None: return x * y elif x != None: return x * x else: return 0 # object obj = Compute[] # zero argument print["Area Value:", obj.area[]] # one argument print["Area Value:", obj.area[4]] # two argument print["Area Value:", obj.area[3, 5]]
Đoạn mã trên sẽ cho chúng ta đầu ra sau
Area Value: 0 Area Value: 16 Area Value: 15
Với điều này, chúng tôi đã đi đến cuối bài viết của chúng tôi. Tôi hy vọng bạn hiểu nạp chồng phương thức trong python là gì và nó hoạt động như thế nào
Để có kiến thức chuyên sâu về python cùng với các ứng dụng khác nhau của nó, bạn có thể đăng ký khóa học trực tuyến về Python trực tiếp của Edureka với sự hỗ trợ 24/7 và quyền truy cập trọn đời
Có một câu hỏi cho chúng tôi?
Nạp chồng phương thức là cách chúng ta thêm chức năng mới vào một hàm đã được xác định và theo cách đó, chúng ta nạp chồng hàm. Có nhiều ngôn ngữ khác hỗ trợ nạp chồng phương thức và Python cũng hỗ trợ nạp chồng phương thức. Ví dụ: toán tử cộng là một ví dụ về nạp chồng toán tử trong đó nó có thể cộng các số nguyên cũng như các chuỗi. Sau đó, toán tử trừ có thể trừ các số nguyên, cũng như tập hợp, liệt kê cũng vậy, đó là cách Python có các tính năng quá tải trong toán tử và hàm của nó
Quá tải python có thể đạt được theo hai cách hoặc trường hợp;
Bắt đầu khóa học phát triển phần mềm miễn phí của bạn
Phát triển web, ngôn ngữ lập trình, kiểm thử phần mềm và những thứ khác
Gói phát triển phần mềm tất cả trong một[hơn 600 khóa học, hơn 50 dự án]
Giá
Xem khóa học
600+ Khóa học trực tuyến. hơn 50 dự án. Hơn 3000 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập Trọn đời
4. 6 [82.828 xếp hạng]
- Nạp chồng hàm hoặc phương thức [ Function Overloading ]
- Nạp chồng toán tử [ Operator Overloading ]
Nạp chồng hàm trong Python
Quá tải phương thức không phải là một khái niệm được áp dụng trong python, nhưng nó có thể đạt được thông qua một số kỹ thuật. Trước hết, khái niệm nạp chồng phương thức có thể được phân thành hai khái niệm khác nhau,
- Nạp chồng các hàm do người dùng định nghĩa
- Quá tải chức năng mặc định
1. Quá tải các chức năng do người dùng xác định
Quá tải chức năng do người dùng xác định có thể đạt được trong python bằng cách đặt giá trị tham số hoặc đối số là không. Vì vậy, nếu một đối số được đặt là không, thì hàm sẽ phản ứng theo một cách khi một giá trị không được truyền cho đối số này và theo một cách khác khi một giá trị không được truyền cho cùng một đối số
Thí dụ
#!/usr/bin/env python
class Overloading_test:
def overloading_function[self , argument1 = 0 , argument2 = 0 ]:
if argument1 is not None or argument2 is not None:
print['Method Overloading parameter count :',[int[ argument1] + int[argument2]]]
else:
print[ ' Method Overloading without parameters ' ]
# Create instance
object1 = Overloading_test[]
# Call the method with no arguments
object1.overloading_function[]
# Call the method with 1 argument
object1.overloading_function[1]
# Call the method with 2 argument
object1.overloading_function[1,1]
đầu ra
2. Quá tải các chức năng mặc định hoặc được xác định trước
Quá tải các hàm dựng sẵn liên quan đến việc xác định hàm được xác định trước, dự kiến sẽ bị quá tải trong lớp python dưới dạng một hàm đặc biệt. Vì vậy, khi hàm định nghĩa trước được khai báo là một hàm đặc biệt trong lớp Python, trình thông dịch sẽ sử dụng hàm đặc biệt này làm phần khai báo cho lệnh gọi định nghĩa trước. Ví dụ dưới đây giải thích chính xác quá trình này
Thí dụ
chúng ta hãy xem xét hàm len[], được sử dụng để xác định độ dài của một mục;
# Using len[] function without method overloading
Lower_Case = [ ' a ' , ' b ' , ' c ', ' d ' , ' e ' , ' f ', ' g ' , ' h ' , ' i ' , ' j ' , ' k ' , ' l ' , ' m ' , ' n ' , ' o ', ' p ' , ' q ' , ' r ', ' s ' , ' t ' , ' u ' , ' v ', ' w ' , ' x ' , ' y ' , ' z ' ]
Upper_Case = [ ' A ' , ' B ' , ' C ', ' D ' , ' E ' , ' F ', ' G ' , ' H ' , ' I ' , ' J ' , ' K ' , ' L ' , ' M ' , ' N ' , ' O ', ' P ' , ' Q ' , ' R ', ' S ' , ' T ' , ' U ' , ' V ', ' W ' , ' X ' , ' Y ' , ' Z ' ]
print[' Collection used for List1 : ', type[Lower_Case]]
print[' Collection used for list2 : ', type[Upper_Case]]
print[' Total count of Alphabets in list1 : ', len[Lower_Case]]
print[' Total count of Alphabets in list2 : ', len[Upper_Case]]
đầu ra
Bây giờ chúng ta hãy sử dụng nạp chồng phương thức cho hàm len[] trong cùng một đoạn mã
class overloading:
def __init__[self,argument1, argument2]:
self.argument1 = argument1
self.argument2 = argument2
def __len__[self]:
return argument1+argument2
Lower_Case = [ ' a ' , ' b ' , ' c ', ' d ' , ' e ' , ' f ', ' g ' , ' h ' , ' i ' , ' j ' , ' k ' , ' l ' , ' m ' , ' n ' , ' o ', ' p ' , ' q ' , ' r ', ' s ' , ' t ' , ' u ' , ' v ', ' w ' , ' x ' , ' y ' , ' z ' ]
Upper_Case = [ ' A ' , ' B ' , ' C ', ' D ' , ' E ' , ' F ', ' G ' , ' H ' , ' I ' , ' J ' , ' K ' , ' L ' , ' M ' , ' N ' , ' O ', ' P ' , ' Q ' , ' R ', ' S ' , ' T ' , ' U ' , ' V ', ' W ' , ' X ' , ' Y ' , ' Z ' ]
print[' Collection used for List1 : ', type[Lower_Case]]
print[' Collection used for list2 : ', type[Upper_Case]]
argument1 = len[Lower_Case]
argument2 = len[Upper_Case]
# Using len[] function without method overloading
Object1 = overloading[argument1,argument2]
print['Overall length of both the lists : ', len[Object1]]
đầu ra
Chúng ta có thể nhận thấy rõ ràng rằng thay vì sử dụng chức năng độ dài tích hợp thông thường, chức năng đặc biệt quá tải __len__[] được sử dụng, làm cho đầu ra in độ dài tổng của cả hai danh sách thay vì độ dài riêng lẻ của chúng
Quá tải toán tử trong Python
Điều này liên quan đến việc giải thích mở rộng của một nhà điều hành nhiều hơn mục đích ban đầu của nó. Ví dụ phổ biến nhất là toán tử cộng '+', trong đó nó có thể được sử dụng để cộng thông thường và cũng để nối hai chuỗi khác nhau
Thí dụ
________số 8đầu ra
Thuận lợi
- Tăng khả năng sử dụng lại mã
- Tăng độ rõ ràng của mã
- Độ phức tạp liên quan đến mã được giảm đáng kể
Sự kết luận
Quá tải đóng một vai trò quan trọng trong nhiều ngôn ngữ lập trình cấp cao;
Bài viết được đề xuất
Đây là hướng dẫn về quá tải Python. Ở đây chúng tôi thảo luận về các chức năng do người dùng xác định và xác định trước cùng với toán tử và ưu điểm của nó. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm –