Junior
943
Python-da __len__ və __abs__ metodları nədir və necə istifadə olunur?
AI-dan cavab
sobes.tech Süni İntellekt
__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))