Quá tải toán tử có nghĩa là đưa ra ý nghĩa mở rộng vượt ra ngoài ý nghĩa hoạt động được xác định trước của chúng. Ví dụ, toán tử + được sử dụng để thêm hai số nguyên cũng như tham gia hai chuỗi và hợp nhất hai danh sách. Nó có thể đạt được bởi vì toán tử ‘++bị quá tải bởi lớp Int và lớp str. Bạn có thể nhận thấy rằng cùng một toán tử hoặc chức năng tích hợp cho thấy hành vi khác nhau cho các đối tượng của các lớp khác nhau, điều này được gọi là quá tải toán tử. & NBSP; means giving extended meaning beyond their predefined operational meaning. For example operator + is used to add two integers as well as join two strings and merge two lists. It is achievable because ‘+’ operator is overloaded by int class and str class. You might have noticed that the same built-in operator or function shows different behavior for objects of different classes, this is called Operator Overloading.
Thí dụ
Python3
print
[
1
+
2
3 GeeksFor0
print
[
3 GeeksFor3
+
3 GeeksFor5
3 GeeksFor0
print
[
3 GeeksFor9
ob2 is greater than ob10
ob2 is greater than ob11
3 GeeksFor0
print
[
3 GeeksFor3
ob2 is greater than ob10
ob2 is greater than ob11
3 GeeksFor0
Đầu ra
3 GeeksFor 12 GeeksGeeksGeeksGeeks
Làm thế nào để làm quá tải các toán tử trong Python? & NBSP;
Hãy xem xét rằng chúng ta có hai đối tượng là biểu diễn vật lý của một lớp [loại dữ liệu do người dùng xác định] và chúng ta phải thêm hai đối tượng với toán tử '+' nhị phân, nó đã gây ra lỗi, vì trình biên dịch không biết cách thêm hai đối tượng . Vì vậy, chúng tôi xác định một phương thức cho toán tử và quá trình đó được gọi là quá tải toán tử. Chúng ta có thể quá tải tất cả các toán tử hiện có nhưng chúng ta có thể tạo ra một nhà khai thác mới. Để thực hiện quá tải toán tử, Python cung cấp một số chức năng đặc biệt hoặc chức năng ma thuật được tự động gọi khi nó được liên kết với toán tử cụ thể đó. Ví dụ: khi chúng ta sử dụng toán tử +, phương thức ma thuật __add__ sẽ tự động được gọi trong đó hoạt động cho toán tử + được xác định.
Quá tải toán tử nhị phân + trong python: & nbsp;
Khi chúng tôi sử dụng toán tử trên các loại dữ liệu do người dùng xác định thì tự động chức năng đặc biệt hoặc hàm ma thuật được liên kết với toán tử đó sẽ được gọi. Thay đổi hành vi của toán tử cũng đơn giản như thay đổi hành vi của phương pháp hoặc chức năng. Bạn xác định các phương thức trong lớp và các nhà khai thác của bạn làm việc theo hành vi đó được xác định trong các phương thức. Khi chúng ta sử dụng toán tử +, phương thức ma thuật __add__ sẽ tự động được gọi trong đó hoạt động cho toán tử + được xác định. Ở đó, bằng cách thay đổi mã MAGI MAGIC này, chúng ta có thể cung cấp thêm ý nghĩa cho toán tử +. & NBSP;
Mã 1: & nbsp; & nbsp;
Python3
ob2 is greater than ob19
ob1 is lessthan ob2 Not equal0
ob1 is lessthan ob2 Not equal1
ob1 is lessthan ob2 Not equal2
ob1 is lessthan ob2 Not equal3
ob1 is lessthan ob2 Not equal4
ob1 is lessthan ob2 Not equal5
ob1 is lessthan ob2 Not equal6
ob1 is lessthan ob2 Not equal4
ob1 is lessthan ob2 Not equal8
ob1 is lessthan ob2 Not equal9
This is the ~ operator, overloaded as binary operator.0
ob1 is lessthan ob2 Not equal1
ob1 is lessthan ob2 Not equal2
This is the ~ operator, overloaded as binary operator.3
ob1 is lessthan ob2 Not equal4
This is the ~ operator, overloaded as binary operator.5
ob1 is lessthan ob2 Not equal6
This is the ~ operator, overloaded as binary operator.7
ob1 is lessthan ob2 Not equal4
ob1 is lessthan ob2 Not equal8
+
print
1print
2
ob1 is lessthan ob2 Not equal9
print
41
____10print
7
ob1 is lessthan ob2 Not equal9
print
42
3 GeeksFor0
[
2
ob1 is lessthan ob2 Not equal9
print
43 GeeksFor3
3 GeeksFor0
[
7
ob1 is lessthan ob2 Not equal9
print
43 GeeksFor5
3 GeeksFor0
print
1
3+
1
5
print
1
77____8 1
9
Đầu ra: & nbsp; & nbsp;
3 GeeksFor
Mã 2: & NBSP;
Python3
ob2 is greater than ob19
+
1+
2ob1 is lessthan ob2 Not equal1
ob1 is lessthan ob2 Not equal2
ob1 is lessthan ob2 Not equal3
ob1 is lessthan ob2 Not equal4
+
7ob1 is lessthan ob2 Not equal6
ob1 is lessthan ob2 Not equal4
ob1 is lessthan ob2 Not equal8
ob1 is lessthan ob2 Not equal9
This is the ~ operator, overloaded as binary operator.0
ob1 is lessthan ob2 Not equal1
ob1 is lessthan ob2 Not equal2
This is the ~ operator, overloaded as binary operator.3
ob1 is lessthan ob2 Not equal4
This is the ~ operator, overloaded as binary operator.5
ob1 is lessthan ob2 Not equal6
This is the ~ operator, overloaded as binary operator.7
ob1 is lessthan ob2 Not equal4
ob1 is lessthan ob2 Not equal8
+
print
1print
2
ob1 is lessthan ob2 Not equal9
print
41
____10print
7
ob1 is lessthan ob2 Not equal9
print
42
3 GeeksFor0
[
2
ob1 is lessthan ob2 Not equal9
print
43 GeeksFor3
3 GeeksFor0
[
7
ob1 is lessthan ob2 Not equal9
print
43 GeeksFor5
3 GeeksFor0
print
3 GeeksFor35
print
1
3+
1
5
Python3
ob2 is greater than ob19
ob1 is lessthan ob2 Not equal0
ob1 is lessthan ob2 Not equal1
ob1 is lessthan ob2 Not equal2
ob1 is lessthan ob2 Not equal3
ob1 is lessthan ob2 Not equal4
ob1 is lessthan ob2 Not equal5
ob1 is lessthan ob2 Not equal6
ob1 is lessthan ob2 Not equal4
ob1 is lessthan ob2 Not equal8
ob1 is lessthan ob2 Not equal9
This is the ~ operator, overloaded as binary operator.0
ob1 is lessthan ob2 Not equal1
ob1 is lessthan ob2 Not equal2
This is the ~ operator, overloaded as binary operator.3
ob1 is lessthan ob2 Not equal4
This is the ~ operator, overloaded as binary operator.5
ob1 is lessthan ob2 Not equal6
3 GeeksFor54
[
ob1 is lessthan ob2 Not equal4
3 GeeksFor57
ob1 is lessthan ob2 Not equal6
This is the ~ operator, overloaded as binary operator.7
ob1 is lessthan ob2 Not equal4
ob1 is lessthan ob2 Not equal8
+
print
1ob1 is lessthan ob2 Not equal6
3 GeeksFor62
+
2print
2
ob1 is lessthan ob2 Not equal9
print
41
____10print
7
ob1 is lessthan ob2 Not equal9
print
42
3 GeeksFor0
[
2
ob1 is lessthan ob2 Not equal9
print
43 GeeksFor3
3 GeeksFor0
3 GeeksFor54
3 GeeksFor78
ob1 is lessthan ob2 Not equal1
print
[
3 GeeksFor82
3 GeeksFor0
3 GeeksFor62
+
2ob1 is lessthan ob2 Not equal1
print
[
3 GeeksFor89
3 GeeksFor0
Output:
ob2 is greater than ob1
[
7ob1 is lessthan ob2
Not equal
9 print
43
GeeksFor
53
GeeksFor
0
Python3
ob2 is greater than ob19
ob1 is lessthan ob2 Not equal0
ob1 is lessthan ob2 Not equal1
ob1 is lessthan ob2 Not equal2
ob1 is lessthan ob2 Not equal3
ob1 is lessthan ob2 Not equal4
ob1 is lessthan ob2 Not equal5
ob1 is lessthan ob2 Not equal6
ob1 is lessthan ob2 Not equal4
ob1 is lessthan ob2 Not equal8
ob1 is lessthan ob2 Not equal9
This is the ~ operator, overloaded as binary operator.0
ob1 is lessthan ob2 Not equal1
ob1 is lessthan ob2 Not equal2
This is the ~ operator, overloaded as binary operator.3
ob1 is lessthan ob2 Not equal4
This is the ~ operator, overloaded as binary operator.5
ob1 is lessthan ob2 Not equal6
3 GeeksFor54
[
ob1 is lessthan ob2 Not equal4
ob2 is greater than ob112
ob1 is lessthan ob2 Not equal6
This is the ~ operator, overloaded as binary operator.7
ob1 is lessthan ob2 Not equal4
ob1 is lessthan ob2 Not equal8
+
print
1ob1 is lessthan ob2 Not equal6
3 GeeksFor62
+
2print
2
ob1 is lessthan ob2 Not equal9
print
41
____10print
7
ob1 is lessthan ob2 Not equal9
print
42
3 GeeksFor0
[
2
ob1 is lessthan ob2 Not equal9
print
43 GeeksFor3
3 GeeksFor0
[
7
ob1 is lessthan ob2 Not equal9
print
43 GeeksFor5
3 GeeksFor0
ob1 is lessthan ob2 Not equal6
3 GeeksFor62
+
2print
1
3+
1
5
print
7
ob1 is lessthan ob2 Not equal9
print
42
3 GeeksFor0
print
7
ob1 is lessthan ob2 Not equal9
print
43 GeeksFor9____10
print
ob2 is greater than ob155
[
2
ob1 is lessthan ob2 Not equal9
print
4ob2 is greater than ob11
3 GeeksFor0
[
7
ob1 is lessthan ob2 Not equal9
print
4ob2 is greater than ob11
3 GeeksFor0
print
1
3
ob1 is lessthan ob2 Not equal9
ob1 is lessthan ob2 Not equal9
1
5Output:
ob1 is lessthan ob2 Not equal