Курс 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. Лямбда-функции в Python
  2. split() без разделителя
  3. Разделение строки на подстроки в Python
  4. Оператор «not» в Python
  5. Генераторы данных
  6. Функция format() в Python
  7. Сортировка в Python
  8. Просмотр внешних файлов в %pycat
  9. Структуры данных в Python
  10. Метод __call__ в Python
  11. Ускорение кода с помощью векторизации
  12. Проекты на Python
  13. Сравнение объектов в Python
  14. Создание инструмента обнаружения плагиата
  15. Фильтрация входных данных в Python
  16. Возврат значений из генератора
  17. Измерение времени выполнения в Python
  18. Функции с дополнением
  19. Определение объема памяти объекта
  20. Работа с геоданными с помощью geopy
  21. Инвертирование словаря
  22. Лямбда-функции в Python
  23. Переопределение унарных операторов
  24. Основы работы с os
  25. Перевод двоичного кода в целое число
  26. Обязательные аргументы в Python
  27. Работа с IP-адресами в Python
  28. Colorama: окрашивание текста в Python
  29. Python enumerate() функции
  30. Нахождение разницы между списками в Python
  31. Работа с файлами в Python
  32. Работа с YAML в Python
  33. Установка и использование pyshorteners
  34. Использование двоеточия в Python
  35. Замена символов в Python
  36. Фильтрация списка чисел
  37. Работа с часовыми поясами в Python
  38. Класс-оболочка для словарей
  39. Расчет времени выполнения
  40. Метод get() для словарей
  41. Участие в сообществе @selectel
  42. Обход словаря в Python
  43. Получение атрибутов и методов класса
  44. Декораторы с аргументами в Python

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