Курс 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. Python: возвращение нескольких значений
  3. Работа со словарями
  4. Работа с Telegram API на Python
  5. Обработка исключений в Python
  6. Копирование и вставка текста в Python
  7. Работа с временем в Python
  8. Основные операции с библиотекой Numpy
  9. Метод pos в Python
  10. Переопределение метода __and__
  11. Генерация случайных чисел Python
  12. Создание даты из строки ISO
  13. Делегирование в Python
  14. Декораторы классов
  15. Проверка на палиндром
  16. Условные выражения в Python
  17. Обход дочерних элементов BeautifulSoup
  18. Установка переменной среды в Python
  19. Упрощенный вывод данных в Python
  20. Руководство по библиотеке pydantic
  21. Работа с индексами списков
  22. Метод is_absolute() для PurePath
  23. Операторы += в Python
  24. Оптимизация гиперпараметров в Python
  25. Создание вложенного генератора
  26. Сериализация данных в JSON с помощью json.dumps
  27. Округление банкира в Python
  28. Метод rsub в Python: расширение функциональности вычитания
  29. Создание Radio кнопок в tkinter
  30. Участие в LP стейкинге Waves
  31. Проверка однородности элементов списка
  32. Python Метод Union Множеств
  33. Оператор обр. импликации
  34. Списки в Python
  35. Проверка элементов списка условием
  36. *args и **kwargs в Python
  37. Атрибуты класса и экземпляра
  38. Частичное совпадение ввода
  39. Работа с Enum в Python3.
  40. Работа с изображениями PIL
  41. Распаковка элементов массива
  42. Отправка поздравлений по дню рождения
  43. GitHub в Telegram: подписка на уведомления
  44. Подсказки типов в Python
  45. Идентификатор объекта в Python

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