Các toán tử được sử dụng trong Python để thực hiện các thao tác cụ thể trên các toán hạng đã cho. Hoạt động mà bất kỳ toán tử cụ thể nào sẽ thực hiện trên bất kỳ loại dữ liệu được xác định trước nào đã được xác định trong Python
Mỗi toán tử có thể được sử dụng theo một cách khác nhau cho các loại toán hạng khác nhau. Ví dụ: toán tử
class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
3 được sử dụng để cộng hai số nguyên để cho kết quả là một số nguyên nhưng khi chúng ta sử dụng nó với toán hạng float thì kết quả là một giá trị float và khi class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
3 được sử dụng với toán hạng chuỗi thì nó sẽ nối hai toán hạng được cung cấpHành vi khác nhau này của một toán tử đối với các loại toán hạng khác nhau được gọi là Nạp chồng toán tử. Việc sử dụng toán tử
class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
3 với các loại toán hạng khác nhau được hiển thị bên dưới>>> x=10
>>> y=20
>>> x+y
30
>>> z=10.4
>>> x+z
20.4
>>> s1 = 'hello '
>>> s2 = 'world'
>>> s1+s2
'hello world'
Nhà điều hành class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
3 có thể thêm gì không?
class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
Câu trả lời là Không, nó không thể. Bạn có thể sử dụng toán tử
class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
3 để thêm hai đối tượng của một lớp không. Toán tử class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
3 có thể thêm hai giá trị số nguyên, hai giá trị float hoặc chỉ có thể được sử dụng để nối hai chuỗi vì các hành vi này đã được xác định trong pythonVì vậy, nếu bạn muốn sử dụng cùng một toán tử để thêm hai đối tượng của một số lớp do người dùng xác định thì bạn sẽ phải tự xác định hành vi đó và thông báo cho python về điều đó
Nếu bạn vẫn chưa rõ, hãy tạo một lớp và thử sử dụng toán tử
class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
3 để thêm hai đối tượng của lớp đó,class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
Traceback [cuộc gọi gần đây nhất cuối cùng]. Tệp "/tmp/sessions/1dfbe78bb701d99d/main. py", dòng 7, inprint["sum = ", c1+c2] TypeError. [các] loại toán hạng không được hỗ trợ cho +. 'Phức hợp' và 'Phức hợp'
Vì vậy, chúng ta có thể thấy rằng toán tử
class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
3 không được hỗ trợ trong lớp do người dùng định nghĩa. Nhưng chúng ta có thể làm điều tương tự bằng cách nạp chồng toán tử class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
3 cho lớp class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
2 của chúng ta. Nhưng làm thế nào chúng ta có thể làm điều đó?Các hàm đặc biệt trong Python
Các hàm đặc biệt trong python là các hàm dùng để thực hiện các tác vụ đặc biệt. Các hàm đặc biệt này có tiền tố và hậu tố tên là
class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
3 như chúng ta thấy trong phương thức class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
4, đây cũng là một hàm đặc biệt. Một số chức năng đặc biệt được sử dụng để nạp chồng toán tử được hiển thị bên dướitoán tử toán học
Dưới đây chúng tôi có tên của các chức năng đặc biệt để quá tải các toán tử toán học trong python
class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
3class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
6Phép trừclass Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
7class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
8Phân chiaclass Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
9class Complex:
# defining init method for class
def __init__[self, r, i]:
self.real = r
self.img = i
# overloading the add operator using special function
def __add__[self, sec]:
r = self.real + sec.real
i = self.img + sec.img
return complx[r,i]
# string function to print object of Complex class
def __str__[self]:
return str[self.real]+' + '+str[self.img]+'i'
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ",c1+c2]
0Phân chia tầngclass Complex:
# defining init method for class
def __init__[self, r, i]:
self.real = r
self.img = i
# overloading the add operator using special function
def __add__[self, sec]:
r = self.real + sec.real
i = self.img + sec.img
return complx[r,i]
# string function to print object of Complex class
def __str__[self]:
return str[self.real]+' + '+str[self.img]+'i'
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ",c1+c2]
1class Complex:
# defining init method for class
def __init__[self, r, i]:
self.real = r
self.img = i
# overloading the add operator using special function
def __add__[self, sec]:
r = self.real + sec.real
i = self.img + sec.img
return complx[r,i]
# string function to print object of Complex class
def __str__[self]:
return str[self.real]+' + '+str[self.img]+'i'
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ",c1+c2]
2Mô đun [hoặc Phần dư]class Complex:
# defining init method for class
def __init__[self, r, i]:
self.real = r
self.img = i
# overloading the add operator using special function
def __add__[self, sec]:
r = self.real + sec.real
i = self.img + sec.img
return complx[r,i]
# string function to print object of Complex class
def __str__[self]:
return str[self.real]+' + '+str[self.img]+'i'
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ",c1+c2]
3class Complex:
# defining init method for class
def __init__[self, r, i]:
self.real = r
self.img = i
# overloading the add operator using special function
def __add__[self, sec]:
r = self.real + sec.real
i = self.img + sec.img
return complx[r,i]
# string function to print object of Complex class
def __str__[self]:
return str[self.real]+' + '+str[self.img]+'i'
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ",c1+c2]
4Công suấtclass Complex:
# defining init method for class
def __init__[self, r, i]:
self.real = r
self.img = i
# overloading the add operator using special function
def __add__[self, sec]:
r = self.real + sec.real
i = self.img + sec.img
return complx[r,i]
# string function to print object of Complex class
def __str__[self]:
return str[self.real]+' + '+str[self.img]+'i'
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ",c1+c2]
5class Complex:
# defining init method for class
def __init__[self, r, i]:
self.real = r
self.img = i
# overloading the add operator using special function
def __add__[self, sec]:
r = self.real + sec.real
i = self.img + sec.img
return complx[r,i]
# string function to print object of Complex class
def __str__[self]:
return str[self.real]+' + '+str[self.img]+'i'
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ",c1+c2]
6Toán tử chuyển nhượng
Dưới đây chúng ta có tên của các hàm đặc biệt để quá tải toán tử gán trong python
Tên Biểu tượng Chức năng đặc biệtIncrementIncrementclass Complex:
# defining init method for class
def __init__[self, r, i]:
self.real = r
self.img = i
# overloading the add operator using special function
def __add__[self, sec]:
r = self.real + sec.real
i = self.img + sec.img
return complx[r,i]
# string function to print object of Complex class
def __str__[self]:
return str[self.real]+' + '+str[self.img]+'i'
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ",c1+c2]
7class Complex:
# defining init method for class
def __init__[self, r, i]:
self.real = r
self.img = i
# overloading the add operator using special function
def __add__[self, sec]:
r = self.real + sec.real
i = self.img + sec.img
return complx[r,i]
# string function to print object of Complex class
def __str__[self]:
return str[self.real]+' + '+str[self.img]+'i'
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ",c1+c2]
8Decrementclass Complex:
# defining init method for class
def __init__[self, r, i]:
self.real = r
self.img = i
# overloading the add operator using special function
def __add__[self, sec]:
r = self.real + sec.real
i = self.img + sec.img
return complx[r,i]
# string function to print object of Complex class
def __str__[self]:
return str[self.real]+' + '+str[self.img]+'i'
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ",c1+c2]
9class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
30Productclass Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
31class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
32Divisionclass Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
33class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
34Modulusclass Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
35class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
36Powerclass Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
37class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
38Toán tử quan hệ
Dưới đây chúng tôi có tên của các chức năng đặc biệt để quá tải các toán tử quan hệ trong python
Tên Biểu tượngChức năng đặc biệtNhỏ hơnclass Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
39class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
30Lớn hơnclass Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
31class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
32Bằngclass Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
33class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
34Không bằngclass Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
35class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
36Nhỏ hơn hoặc bằngclass Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
37class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
38Lớn hơn hoặc bằngclass Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
39class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
32Đã đến lúc xem một số ví dụ mã trong đó chúng ta thực sự sử dụng các hàm đặc biệt được chỉ định ở trên và quá tải một số toán tử
Quá tải toán tử class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
3
class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
Trong ví dụ mã bên dưới, chúng ta sẽ quá tải toán tử
class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
3 cho lớp class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
2 của chúng ta,class Complex:
# defining init method for class
def __init__[self, r, i]:
self.real = r
self.img = i
# overloading the add operator using special function
def __add__[self, sec]:
r = self.real + sec.real
i = self.img + sec.img
return complx[r,i]
# string function to print object of Complex class
def __str__[self]:
return str[self.real]+' + '+str[self.img]+'i'
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ",c1+c2]
tổng = 7 + 7i
Trong chương trình trên,
class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
34 được sử dụng để nạp chồng toán tử class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
3 i. e. khi toán tử class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
3 được sử dụng với hai đối tượng lớp class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
2 thì hàm class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
34 được gọiclass Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
39 là một chức năng đặc biệt khác được sử dụng để cung cấp định dạng của đối tượng phù hợp để inQuá tải toán tử class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
39
class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
Bây giờ, hãy nạp chồng toán tử nhỏ hơn để chúng ta có thể dễ dàng so sánh các giá trị của hai đối tượng lớp
class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
2 bằng cách sử dụng toán hạng nhỏ hơn class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
39Như chúng ta đã biết, để làm như vậy, chúng ta phải định nghĩa hàm đặc biệt
class Complex:
def __init__[self, r, i]:
self.real = r
self.img = i
c1 = Complex[5,3]
c2 = Complex[2,4]
print["sum = ", c1+c2]
33 trong lớp của chúng taDựa trên yêu cầu so sánh đối tượng lớp, bạn có thể xác định logic cho các chức năng đặc biệt để ghi đè toán tử. Trong đoạn mã trên, chúng tôi đã ưu tiên phần thực của số phức, nếu phần đó nhỏ hơn thì toàn bộ số phức nhỏ hơn, nếu phần đó bằng nhau thì chúng tôi kiểm tra phần ảo