Computer >> Máy Tính >  >> Lập trình >> Python

Các toán tử nạp chồng hoạt động như thế nào trong Python?


Chúng ta biết rằng chúng ta có thể sử dụng toán tử + để thêm số và đồng thời để nối các chuỗi. Điều này có thể thực hiện được vì toán tử + được nạp chồng bởi cả lớp int và lớp str. Các toán tử về cơ bản là các phương thức được định nghĩa trong các lớp tương ứng. Định nghĩa các phương thức cho toán tử được gọi là nạp chồng toán tử. Ví dụ Để sử dụng toán tử + với các đối tượng tùy chỉnh, chúng ta cần xác định một phương thức được gọi là __add__.

Ví dụ

Đoạn mã sau giúp bạn dễ hiểu cách hoạt động của tính năng nạp chồng toán tử

import math
class Circle:
     def __init__(self, radius):
        self.__radius = radius
     def setRadius(self, radius):
        self.__radius = radius
     def getRadius(self):
        return self.__radius
     def area(self):
        return math.pi * self.__radius ** 2
     def __add__(self, another_circle):
        return Circle( self.__radius + another_circle.__radius )
c1 = Circle(3)
print(c1.getRadius())
c2 = Circle(6)
print(c2.getRadius())
c3 = c1 + c2 # This is because we have overloaded + operator by adding a method  __add__
print(c3.getRadius())

Đầu ra

Điều này cho kết quả

3
6
9

Việc sửa đổi hành vi của một toán tử để nó hoạt động với các kiểu do người dùng xác định được gọi là nạp chồng toán tử. Đối với mỗi toán tử trong Python, có một phương thức đặc biệt tương ứng, như __add__. Để biết thêm chi tiết, hãy xem docs.python.org/ref/specialnames.html.