Курс 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. Установка random seed в Python
  3. Оценка выражений генератора в Python
  4. Создание Telegram-бота на Python
  5. Работа с переменными в Python
  6. Функции высшего порядка в Python
  7. Руководство по библиотеке pydantic
  8. Объединение словарей в Python
  9. Потоковый ввод в Python
  10. Метод getitem для доступа к элементам последовательности
  11. Генераторы в Python
  12. Работа со словарями с defaultdict из collections
  13. Создание пар из последовательностей
  14. Python Поверхностное Копирование
  15. Генераторы в Python
  16. Методы Python для работы с данными
  17. Определение размера папок в Python
  18. Подсчет элементов в Python
  19. Оптимизация памяти в Python
  20. Сериализация и десериализация объектов
  21. Оператор in для проверки наличия элемента
  22. Функция pow() — возвести число в степень
  23. Функция findall() для поиска вхождений строки
  24. Работа с байтовыми строками в Python
  25. Обработка исключений
  26. Генерация UUID в Python
  27. Обработка исключения UnboundLocalError
  28. Удаление ключа из словаря
  29. Отладка производительности Python
  30. Метод __float__ в Python
  31. Удаление знаков препинания в Python
  32. Big O оптимизация
  33. Операции с числами в Python
  34. Работа с файлами в Python
  35. Создание веб-приложения с Flask
  36. Модуль xkcd: добавление юмора в Python
  37. Основы работы со строками в Python
  38. Переопределение метода __eq__
  39. Combobox в Tkinter
  40. Работа с парами ключ-значение
  41. Логирование с Logzero
  42. Удаление дубликатов в pandas
  43. Метод rsub в Python: расширение функциональности вычитания
  44. Установка и использование библиотеки google
  45. Итерация по коллекции в Python
  46. Создание словаря в Python
  47. UserString в Python
  48. Работа с zip-архивами в Python
  49. Работа с файлами в Python

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