Курс Python → Создание функций высшего порядка

Для создания функций более высокого порядка в Python можно использовать два основных подхода: вложенные функции и вызываемые объекты. Вложенные функции — это функции, которые определяются внутри другой функции и имеют доступ к переменным внешней функции. Этот подход обычно более простой и понятный для начинающих разработчиков.

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

Один из преимуществ использования вызываемых объектов заключается в том, что несколько функций могут разделять свою сигнатуру с помощью наследования. Это позволяет избежать дублирования кода и сделать структуру программы более чистой и модульной.


class CallableObject:
    def __init__(self, state):
        self.state = state

    def __call__(self):
        self.state += 1
        return self.state

# Пример использования вызываемого объекта
obj = CallableObject(0)
print(obj())  # Вывод: 1
print(obj())  # Вывод: 2

В итоге, выбор между вложенными функциями и вызываемыми объектами зависит от конкретной задачи и предпочтений разработчика. Оба подхода имеют свои преимущества и недостатки, и важно выбрать тот, который лучше подходит для конкретной ситуации.

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

Автор урока

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

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

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

  1. Преобразование многоуровневого словаря
  2. Введение в PyTorch
  3. Обработка элементов в Python
  4. Defaultdict в Python
  5. Создание обратного итератора
  6. Объединение строк с помощью метода join
  7. Печать месячного календаря
  8. Списковое включение в Python
  9. Метод __ilshift__ для битового сдвига влево
  10. Генераторы в Python
  11. Howdoi — получение ответов из терминала
  12. Установка и обучение ChatterBot
  13. Счетчик ссылок в Python
  14. Исправление ошибки NameError
  15. Пространство имен в Python
  16. Генерация UUID в Python
  17. Использование двоеточия в Python
  18. Нахождение максимального значения и его индекса в списке
  19. Библиотека sh: удобные команды терминала
  20. Декораторы в Python
  21. Копирование и вставка текста в Python
  22. Тестирование времени с Freezegun
  23. Оператор in в Python
  24. Проверка наличия элемента в списке
  25. Методы classmethod и staticmethod
  26. Получение списка файлов в директории с использованием os
  27. Функция format() в Python
  28. Работа с deque из collections
  29. Запрос DELETE с библиотекой requests
  30. Удаление дубликатов в pandas
  31. Работа с файлами в Python
  32. Класс-оболочка для словарей
  33. Атрибуты класса и экземпляра в Python
  34. Декораторы в Python
  35. Регулярные выражения: метод match
  36. Создание таблиц в Python с PrettyTable
  37. Чтение бинарного файла в Python.
  38. Выход из профиля в Django
  39. Отладчик pdb: начало работы
  40. Определение наиболее частого элемента с помощью collections.Counter
  41. Блок try…finally в Python
  42. Функции высшего порядка в Python
  43. Метод is_absolute() для PurePath
  44. Аргументы *args и **kwargs
  45. Проверка типа данных
  46. Профилирование с Pandas

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