Назад к вопросам
Junior
458
questionbank
Что такое дандер-методы?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Дендер-методы (также известные как "магические" или "специальные" методы) — это методы в классах Python, имена которых начинаются и заканчиваются двойным подчеркиванием (например, __init__, __str__). Они используются для реализации протоколов или переопределения поведения операторов и встроенных функций.
Примеры использования:
- Инициализация объекта (
__init__) - Представление объекта в виде строки (
__str__,__repr__) - Перегрузка операторов (
__add__для сложения,__mul__для умножения) - Управление контекстом (с использованием
with) (__enter__,__exit__) - Создание итераторов (
__iter__,__next__) - Работа с атрибутами (
__getattr__,__setattr__)
Использование дандер-методов позволяет классам взаимодействовать с механизмом языка Python на более низком уровне, делая пользовательские объекты согласованными со встроенными типами данных.
# Пример использования __init__ и __str__
class MyClass:
def __init__(self, value):
self.value = value # Инициализация объекта
def __str__(self):
return f"Объект с значением: {self.value}" # Строковое представление объекта
obj = MyClass(10)
print(obj) # Вызовет __str__
# Пример использования __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)
def __str__(self):
return f"Vector({self.x}, {self.y})"
v1 = Vector(1, 2)
v2 = Vector(3, 4)
v3 = v1 + v2 # Вызовет __add__
print(v3)