Функция высшего порядка — это функция, которая:
Это концепция является ключевой частью функционального программирования в Python.
Python предоставляет несколько встроенных функций высшего порядка:
map(func, iterable) — применяет функцию к каждому элементу итерируемого объектаfilter(func, iterable) — возвращает только элементы, для которых функция вычисляется в Truesorted(iterable, key=func) — сортирует элементы, используя функцию в качестве критерия сортировкиnumbers = [1, 2, 3, 4, 5]
squares = list(map(lambda x: x ** 2, numbers)) # [1, 4, 9, 16, 25]
evens = list(filter(lambda x: x % 2 == 0, numbers)) # [2, 4]
words = sorted(["banana", "apple", "fig"], key=len) # ['fig', 'apple', 'banana']
Ты также можешь писать свои собственные функции высшего порядка. Распространённый паттерн — это декоратор — функция, которая оборачивает другую функцию, чтобы расширить её поведение:
def logger(func):
def wrapper(*args, **kwargs):
print(f"Calling {func.__name__}")
return func(*args, **kwargs)
return wrapper
@logger
def greet(name):
print(f"Hello, {name}!")
Здесь logger принимает функцию и возвращает новую — что делает её функцией высшего порядка.
functools и функциональных пайплайновФункция высшего порядка должна одновременно принимать функцию как аргумент И возвращать функцию в качестве результата.
Новый — ещё не проверен сообществом
Вы