Ưu điểm của nạp chồng toán tử trong python

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)

Ưu điểm của nạp chồng toán tử trong python
Ưu điểm của nạp chồng toán tử trong python
Ưu điểm của nạp chồng toán tử trong python
Ưu điểm của nạp chồng toán tử trong python

Ưu điểm của nạp chồng toán tử trong python
Ưu điểm của nạp chồng toán tử trong python
Ưu điểm của nạp chồng toán tử trong python
Ưu điểm của nạp chồng toán tử trong python

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

Ưu điểm của nạp chồng toán tử trong python

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

Ưu điểm của nạp chồng toán tử trong python

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

Ưu điểm của nạp chồng toán tử trong python

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

Ưu điểm của nạp chồng toán tử trong python

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 –

Lợi thế của quá tải toán tử là gì?

Ưu điểm của nạp chồng toán tử trong C++ . Chúng cung cấp hỗ trợ tương tự cho các loại tích hợp sẵn do người dùng xác định. Nạp chồng toán tử trong C++ giúp chương trình dễ hiểu hơn. enables programmers to use notation closer to the target domain. They provide similar support to built-in types of user-defined types. Operator overloading in c++ makes the program easier to understand.

Việc sử dụng nạp chồng toán tử là gì?

Nạp chồng toán tử được sử dụng để nạp chồng hoặc định nghĩa lại hầu hết các toán tử có sẵn trong C++ . Nó được sử dụng để thực hiện thao tác trên kiểu dữ liệu do người dùng định nghĩa. Ví dụ, C++ cung cấp khả năng thêm các biến của kiểu dữ liệu do người dùng định nghĩa được áp dụng cho các kiểu dữ liệu dựng sẵn.

Nạp chồng toán tử trong Python là gì?

Trăn. . Quá tải toán tử có nghĩa là cung cấp ý nghĩa mở rộng ngoài ý nghĩa hoạt động được xác định trước . Ví dụ: toán tử + được sử dụng để cộng hai số nguyên cũng như nối hai chuỗi và hợp nhất hai danh sách. Có thể đạt được vì toán tử '+' bị quá tải bởi lớp int và lớp str.