Курс 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. Измерение времени выполнения кода с помощью time
  2. Использование *args
  3. Создание итерируемых объектов
  4. Проверка подстроки в строке с помощью in
  5. Генераторы в Python
  6. Создание словаря с значением по умолчанию
  7. Группировка элементов в словарь
  8. Выражения-генераторы в Python
  9. Обновление множества в Python
  10. Метод rxor для операции побитового исключающего «или»
  11. Настройка вывода в Numpy
  12. Отладка утечек памяти в Python
  13. Установка и использование pyshorteners
  14. SciPy: широкий функционал для математических операций
  15. Быстрый поиск кода
  16. Декораторы в Python
  17. Выборка чисел
  18. Переопределение метода xor в Python
  19. Преобразование PowerPoint в PDF.
  20. Идентификатор объекта в Python
  21. Работа со словарями в Python
  22. Сравнение строк в Python
  23. Повторение элементов списков
  24. Измерение времени выполнения кода
  25. Транспонирование 2D-массива с помощью zip
  26. Оптимизация методов в Python 3.7
  27. Выключение компьютера с помощью Python
  28. Работа с базами данных SQLite
  29. Область видимости переменных в Python
  30. Декораторы в Python
  31. Python: Splat-оператор и splatty-splat
  32. Defaultdict в Python
  33. Возврат значений из генератора
  34. Избегание изменяемых аргументов
  35. Переменные в Python: сокращение гласных
  36. Участие в сообществе @selectel
  37. Получение размера объекта с sys.getsizeof()
  38. Метод округления чисел
  39. Создание словарей с defaultdict
  40. Проверка на истинность объектов в Python
  41. PATCH-запрос с библиотекой requests
  42. Функции высшего порядка в Python
  43. Метод join() для объединения элементов в строку.
  44. Нарезка списков в Python
  45. Преобразование символов в нижний регистр
  46. Создание объекта времени
  47. Оператор «and» в Python

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