Да, в Python возможно вкладывать одну функцию в другую. Такая вложенная функция называется внутренней функцией или замыканием.
Внутренние функции имеют доступ к области видимости внешней функции, в которой они определены, включая переменные и параметры внешней функции. Это позволяет создавать гибкие и мощные конструкции.
Пример:
def outer_function(x):
def inner_function(y):
return x + y
return inner_function
my_func = outer_function(10)
result = my_func(5) # result будет равен 15
print(result)
В этом примере inner_function
определена внутри outer_function
. Когда вызывается outer_function(10)
, она возвращает inner_function
. Возвращенная функция my_func
сохраняет доступ к переменной x
из outer_function
, даже после того, как outer_function
завершила свое выполнение. Это свойство называется замыканием.
Преимущества использования вложенных функций:
Когда это может быть полезно: