Back to questions
СБЕР Роботы
Junior — Middle
68
Можешь рассказать о магических методах, которые ты знаешь в языке программирования?
Companies where asked
LC-Group
ООО Цитадель
Атом Безопасность
АО К-Технологии
Answer from AI
sobes.tech AI
Магические методы в Python — это специальные методы с двойным подчёркиванием в начале и конце имени (например, __init__, __str__). Они позволяют переопределять поведение объектов и интегрироваться с синтаксисом языка.
Некоторые часто используемые магические методы:
__init__(self, ...)— конструктор объекта.__str__(self)— строковое представление объекта (для функцииstr()иprint).__repr__(self)— официальное строковое представление объекта, полезно для отладки.__len__(self)— возвращает длину объекта (для функцииlen()).__getitem__(self, key)— доступ к элементам по индексу или ключу.__setitem__(self, key, value)— установка значения по индексу или ключу.__iter__(self)— возвращает итератор для объекта.__call__(self, ...)— позволяет объекту быть вызываемым как функция.__eq__(self, other)— сравнение на равенство.
Пример использования __str__ и __repr__:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"{self.name}, {self.age} лет"
def __repr__(self):
return f"Person(name={self.name!r}, age={self.age})"
p = Person("Иван", 30)
print(str(p)) # Иван, 30 лет
print(repr(p)) # Person(name='Иван', age=30)
Магические методы позволяют создавать более «питоничный» и удобный в использовании код.