Вопрос проверяет понимание перегрузки оператора сложения в Python и типов данных, поддерживающих эту операцию.
Оператор + в Python является перегружаемым, то есть его поведение зависит от типов операндов. Он не ограничивается только числами, а поддерживается для нескольких встроенных типов данных.
Для чисел (int, float, complex) оператор + выполняет арифметическое сложение. Например:
print(5 + 3) # 8
print(2.5 + 1.5) # 4.0
print(1+2j + 3+4j) # (4+6j)Для строк (str) оператор + выполняет конкатенацию, то есть объединение строк:
print('Hello, ' + 'world!') # Hello, world!Для списков (list) и кортежей (tuple) оператор + также выполняет конкатенацию, создавая новый список или кортеж:
print([1, 2] + [3, 4]) # [1, 2, 3, 4]
print((1, 2) + (3, 4)) # (1, 2, 3, 4)Для множеств (set) оператор + не поддерживается, но для объединения множеств используется оператор |:
print({1, 2} | {3, 4}) # {1, 2, 3, 4}Для пользовательских классов можно определить метод __add__, чтобы перегрузить оператор +. Например:
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
v1 = Vector(1, 2)
v2 = Vector(3, 4)
v3 = v1 + v2
print(v3.x, v3.y) # 4 6Оператор сложения в Python гибок и поддерживается для различных типов данных, включая числа, строки, списки и кортежи. Для пользовательских классов его можно настроить через метод __add__. Это делает код более читаемым и интуитивным, особенно при работе с математическими или коллекционными структурами.