Курс Python → Переопределение метода len

Для создания последовательностей в Python можно использовать классы и методы, которые позволяют определить специфическое поведение объектов коллекций. Например, в приведенном выше примере класс CustomList содержит метод len(self), который возвращает длину списка self.items, используемого внутри объекта. Когда мы вызываем функцию len(my_list) для объекта my_list, вызывается метод my_list.len(), который возвращает текущую длину списка.

Переопределение метода len позволяет определить, как будет интерпретироваться длина вашего объекта. Это может быть полезно при создании собственных коллекций или структур данных, так как вы можете управлять тем, как ваш объект будет взаимодействовать с другими частями вашего кода. Например, если вы хотите, чтобы ваш объект вел себя как список, но с некоторыми дополнительными функциями, переопределение метода len позволит вам точно контролировать этот аспект.


class CustomList:
    def __init__(self, items):
        self.items = items

    def __len__(self):
        return len(self.items)

my_list = CustomList([1, 2, 3, 4, 5])
print(len(my_list))  # Выведет 5

Преимущество использования переопределения метода len заключается в том, что вы можете создавать более гибкие и удобные для использования объекты в Python. Это позволяет вам точно контролировать поведение вашего объекта и определять его взаимодействие с другими частями вашего кода. Таким образом, вы можете создавать собственные типы данных, которые будут работать так, как вам нужно, что упростит вашу работу и повысит читаемость вашего кода.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Работа с географическими данными в Python
  2. Извлечение данных из JSON
  3. Очистка списка от False, None, 0, «»
  4. Векторизация в Python с NumPy.
  5. Lambda Functions in Python
  6. Работа с YAML в Python
  7. Оптимизация памяти с помощью __slots__
  8. Определение имен функций
  9. Закрытие файла в Python
  10. Копирование и вставка текста в Python
  11. Срезы в Python
  12. Работа с WindowsPath()
  13. Переопределение метода __floordiv__
  14. Методы classmethod и staticmethod
  15. Улучшенные подсказки для импорта в Python 3.12
  16. Сравнение строк в Python
  17. Тестирование функции сложения
  18. Функции классификации комплексных чисел
  19. Работа с асинхронными задачами в Python
  20. Сортировка HTML по CSS-селектору
  21. Потоковый ввод в Python
  22. Переворот строки
  23. Класс Counter() для подсчета элементов
  24. Работа с необработанными строками
  25. Необязательные аргументы в Python
  26. Работа со строками
  27. Удаление элементов по срезу
  28. Мониторинг работы программы Py-spy
  29. Расчет времени выполнения
  30. Динамическая типизация в Python
  31. Списки в Python: синтаксис представления
  32. Обновление и получение данных в SQLite
  33. Изменение переменной в Python: nonlocal
  34. Monkey Patching в Python
  35. Однострочники Python
  36. Безопасный доступ к значениям словаря
  37. Преобразование регистра символов
  38. EMOT преобразование эмодзи в текст
  39. Функция rsplit() в Python
  40. Функция zip() в Python
  41. Представление бесконечности в Python
  42. Функция count() в Python
  43. Декодирование строк в Python
  44. Отображение HTML кода в Python
  45. Форматирование кода на Python
  46. Декоратор Ajax required

Marketello читают маркетологи из крутых компаний