Hướng dẫn define overloading in python - xác định quá tải trong python

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.  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

3
GeeksFor
73
3
GeeksFor
74
3
GeeksFor
75
3
GeeksFor
76
3
GeeksFor
77

3
GeeksFor
0

3
GeeksFor
73
3
GeeksFor
74

3
GeeksFor
3
3
GeeksFor
76
3
GeeksFor
5
3
GeeksFor
0

3
GeeksFor
73
3
GeeksFor
74

3
GeeksFor
9
ob2 is greater than ob1
0
ob2 is greater than ob1
1
3
GeeksFor
0

3
GeeksFor
73
3
GeeksFor
74

3
GeeksFor
3
ob2 is greater than ob1
0
ob2 is greater than ob1
1
3
GeeksFor
0

Đầu ra

3
GeeksFor
2

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 ob1
9
3
GeeksFor
40
3
GeeksFor
41
3
GeeksFor
42
3
GeeksFor
43
3
GeeksFor
44
3
GeeksFor
45
3
GeeksFor
46
3
GeeksFor
44
3
GeeksFor
48
3
GeeksFor
49
3
GeeksFor
40
3
GeeksFor
41
3
GeeksFor
42
3
GeeksFor
43
3
GeeksFor
4 4
3
GeeksFor
45
3
GeeksFor
46
3
GeeksFor
47
3
GeeksFor
44
3
GeeksFor
48
3
GeeksFor
76
3
GeeksFor
731

3
GeeksFor
732

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
75____10

3
GeeksFor
737

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
77
3
GeeksFor
0

3
GeeksFor
742

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
3
3
GeeksFor
0

3
GeeksFor
747

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
5
3
GeeksFor
0

3
GeeksFor
73
3
GeeksFor
753
3
GeeksFor
76
3
GeeksFor
755

3
GeeksFor
73
3
GeeksFor
7577____8
3
GeeksFor
759

Đầu ra: & nbsp; & nbsp;   
 

3
GeeksFor

Mã 2: & NBSP;

Python3

ob2 is greater than ob1
9
3
GeeksFor
761
3
GeeksFor
762
3
GeeksFor
41
3
GeeksFor
42
3
GeeksFor
43
3
GeeksFor
44
3
GeeksFor
767
3
GeeksFor
46
3
GeeksFor
44
3
GeeksFor
48
3
GeeksFor
49
3
GeeksFor
40
3
GeeksFor
41
3
GeeksFor
42
3
GeeksFor
43
3
GeeksFor
44
3
GeeksFor
45
3
GeeksFor
46
3
GeeksFor
47
3
GeeksFor
44
3
GeeksFor
48
3
GeeksFor
76
3
GeeksFor
731

3
GeeksFor
732

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
75____10

3
GeeksFor
737

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
77
3
GeeksFor
0

3
GeeksFor
742

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
3
3
GeeksFor
0

3
GeeksFor
747

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
5
3
GeeksFor
0

3
GeeksFor
73

3
GeeksFor
35

3
GeeksFor
73
3
GeeksFor
753
3
GeeksFor
76
3
GeeksFor
755
  

Python3

3
GeeksFor
73
3
GeeksFor
7577____8
3
GeeksFor
759

3
GeeksFor
732

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
75____10

3
GeeksFor
737

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
77
3
GeeksFor
0

3
GeeksFor
742

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
3
3
GeeksFor
0

Output:

ob2 is greater than ob1

3
GeeksFor
747

3
GeeksFor
169
3
GeeksFor
734
3
GeeksFor
5
3
GeeksFor
9
3
GeeksFor
734
3
GeeksFor
5
3
GeeksFor
0
 

Python3

ob2 is greater than ob1
9
3
GeeksFor
40
3
GeeksFor
41
3
GeeksFor
42
3
GeeksFor
43
3
GeeksFor
44
3
GeeksFor
45
3
GeeksFor
46
3
GeeksFor
44
3
GeeksFor
48
3
GeeksFor
49
3
GeeksFor
40
3
GeeksFor
41
3
GeeksFor
42
3
GeeksFor
43
3
GeeksFor
44
3
GeeksFor
45
3
GeeksFor
46
3
GeeksFor
54
3
GeeksFor
74
3
GeeksFor
44
ob2 is greater than ob1
12
3
GeeksFor
46
3
GeeksFor
47
3
GeeksFor
44
3
GeeksFor
48
3
GeeksFor
76
3
GeeksFor
731
3
GeeksFor
46
3
GeeksFor
62
3
GeeksFor
762

3
GeeksFor
732

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
75____10

3
GeeksFor
737

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
77
3
GeeksFor
0

3
GeeksFor
742

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
3
3
GeeksFor
0

3
GeeksFor
747

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
5
3
GeeksFor
0
3
GeeksFor
46
3
GeeksFor
62
3
GeeksFor
762

3
GeeksFor
73
3
GeeksFor
753
3
GeeksFor
76
3
GeeksFor
755

3
GeeksFor
737

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
77
3
GeeksFor
0

3
GeeksFor
737

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
3
3
GeeksFor
0

3
GeeksFor
73

ob2 is greater than ob1
55

3
GeeksFor
742

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
5
3
GeeksFor
0
3
GeeksFor
46
3
GeeksFor
62
3
GeeksFor
762

3
GeeksFor
747

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
5
3
GeeksFor
0
3
GeeksFor
46
3
GeeksFor
62
3
GeeksFor
762

3
GeeksFor
73
3
GeeksFor
753

3
GeeksFor
73
3
GeeksFor
753
3
GeeksFor
76
3
GeeksFor
755

Output:

3
GeeksFor
49
3
GeeksFor
734
3
GeeksFor
9____10

3
GeeksFor
49
3
GeeksFor
734
ob2 is greater than ob1
1
3
GeeksFor
0

3
GeeksFor
49
3
GeeksFor
49
3
GeeksFor
755

3
GeeksFor
4 Phương pháp ma thuật Python hoặc các chức năng đặc biệt cho quá tải người vận hànhNhà khai thác nhị phân:Nhà điều hànhPhương pháp ma thuật+__add __ [bản thân, người khác]-__Sub __ [bản thân, người khác]*__mul __ [bản thân, người khác]/__truediv __ [bản thân, người khác]//__floordiv __ [bản thân, người khác]Phần trăm__mod __ [bản thân, người khác]**__pow __ [bản thân, người khác]>>__rshift __ [bản thân, người khác]__and __ [bản thân, người khác]__lshift __ [bản thân, người khác]Không có giá trị__and __ [bản thân, người khác]|

__or __ [bản thân, người khác]

3
GeeksFor
4 Phương pháp ma thuật Python hoặc các chức năng đặc biệt cho quá tải người vận hành__pow __ [bản thân, người khác]>>__rshift __ [bản thân, người khác]__and __ [bản thân, người khác]__pow __ [bản thân, người khác]>>__rshift __ [bản thân, người khác]__and __ [bản thân, người khác]__lshift __ [bản thân, người khác]Không có giá trị__and __ [bản thân, người khác] |

__or __ [bản thân, người khác]

^__xor __ [bản thân, người khác]
Toán tử so sánh: __lt __ [bản thân, người khác]
> __gt __ [bản thân, người khác]
__le __ [bản thân, người khác] > =
__ge __ [bản thân, người khác] ==
__eq __ [bản thân, người khác] ! =
Phương pháp ma thuật Python hoặc các chức năng đặc biệt cho quá tải người vận hành Nhà khai thác nhị phân:
Nhà điều hành Phương pháp ma thuật
+ __add __ [bản thân, người khác]
__pow __ [bản thân, người khác] >>
__rshift __ [bản thân, người khác] __and __ [bản thân, người khác]
__lshift __ [bản thân, người khác] Không có giá trị
__and __ [bản thân, người khác] |

__or __ [bản thân, người khác]

3
GeeksFor
4 Phương pháp ma thuật Python hoặc các chức năng đặc biệt cho quá tải người vận hành
Phương pháp ma thuật +
Nhà khai thác nhị phân: Nhà điều hành
Phương pháp ma thuật +

__add __ [bản thân, người khác]It is not possible to change the number of operands of an operator. For example: If we can not overload a unary operator as a binary operator. The following code will throw a syntax error.

Python3

-

__Sub __ [bản thân, người khác]

*

__mul __ [bản thân, người khác]

/

__truediv __ [bản thân, người khác]

3
GeeksFor
73

ob2 is greater than ob1
97

//

__floordiv __ [bản thân, người khác]

Chức năng quá tải trong Python với ví dụ là gì?

Phần trămthe ability to have multiple functions with the same name but with different signatures/implementations. When an overloaded function fn is called, the runtime first evaluates the arguments/parameters passed to the function call and judging by this invokes the corresponding implementation.

__mod __ [bản thân, người khác]

**two or more methods may have the same name if they differ in parameters [different number of parameters, different types of parameters, or both]. These methods are called overloaded methods and this feature is called method overloading. For example: void func[] { ... }

__pow __ [bản thân, người khác]

>>to load an excessive amount in or on something, such as an overload of electricity which shorts out the circuits. Overloading causes a "Too much!" situation. To overload is to push something or someone too far. A supervisor can overload an employee by assigning too much work.

Python có quá tải không?

Giống như các ngôn ngữ khác [ví dụ: quá tải phương thức trong C ++] làm, Python không hỗ trợ quá tải phương thức theo mặc định.Nhưng có nhiều cách khác nhau để đạt được quá tải phương pháp trong Python.Vấn đề với quá tải phương pháp trong Python là chúng ta có thể quá tải các phương thức nhưng chỉ có thể sử dụng phương thức được xác định mới nhất.

Bài Viết Liên Quan

Chủ Đề