Back to questions
Junior — Middle
60
Можете объяснить механизм работы специальных методов, которые вызываются автоматически в определённых ситуациях в объектно-ориентированном программировании?
Companies where asked
Леста
Answer from AI
sobes.tech AI
В объектно-ориентированном программировании в Python специальные методы (часто называемые "магическими" или "дуnder" методами, т.е. с двойным подчёркиванием, например, __init__, __str__, __add__) вызываются автоматически в определённых ситуациях.
Например:
__init__вызывается при создании объекта (конструктор).__str__вызывается при преобразовании объекта в строку (например, при вызовеprint).__add__вызывается при использовании оператора+между объектами.
Это позволяет переопределять поведение стандартных операций для своих классов.
Пример:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __str__(self):
return f"Point({self.x}, {self.y})"
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y)
p1 = Point(1, 2)
p2 = Point(3, 4)
print(p1) # Выведет: Point(1, 2)
p3 = p1 + p2
print(p3) # Выведет: Point(4, 6)
Таким образом, специальные методы позволяют интегрировать пользовательские классы с синтаксисом и поведением языка.