Назад к вопросам
Junior
443
questionbank
Что такое методы __len__ и __abs__ в Python и как их использовать?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
__len__ возвращает длину объекта (количество элементов). Используется для реализации встроенной функции len(). Должен возвращать неотрицательное целое число.
__abs__ возвращает абсолютное значение объекта. Используется для реализации встроенной функции abs(). Может возвращать значение того же типа, что и объект, или другого числового типа.
Пример использования в классе:
class MyContainer:
def __init__(self, items):
self._items = items
def __len__(self):
return len(self._items)
# Пример реализации __abs__ для кастомного типа, представляющего "меру"
# В данном случае, возвращает абсолютное значение суммы элементов
def __abs__(self):
if all(isinstance(x, (int, float)) for x in self._items):
return abs(sum(self._items))
else:
raise TypeError("can only abs() of numbers")
# Использование __len__
container = MyContainer([1, 2, 3])
container_empty = MyContainer([])
print(len(container))
print(len(container_empty))
# Использование __abs__
measure = MyContainer([-1, -2, 3])
print(abs(measure))