Этот вопрос проверяет понимание специальных методов Python, начинающихся и заканчивающихся двойным подчеркиванием, и их роли в реализации поведения объектов.
Dunder (double underscore) методы — это специальные методы, встроенные в Python, которые определяют поведение объектов. Например, __init__ и __str__. Они позволяют переопределять стандартные операции (создание объекта, преобразование в строку и т.д.).
Dunder методы (или магические методы) используются для добавления к классу особого поведения. Они определяются с помощью двойного подчеркивания до и после имени (__methodname__).
Примеры dunder методов:
__init__(self): конструктор, инициализирует объект.
__str__(self): возвращает строковое представление объекта.
__add__(self, other): переопределяет оператор +.
__getitem__(self, key): позволяет объекту работать, как словарь или список.
Пример:
class MyClass:
def __init__(self, value):
self.value = value
def __str__(self):
return f"MyClass with value {self.value}"
def __add__(self, other):
return MyClass(self.value + other.value)
a = MyClass(10)
b = MyClass(20)
print(a + b) # MyClass with value 30Когда использовать:
Для кастомизации поведения объектов (например, работа с арифметикой или индексацией).