🖥 Особенности работы со вложенными функциями



Вложенные функции позволяют управлять областью видимости и использовать замыкания. Рассмотрим это на кратких примерах:



1. Замыкание — Функция запоминает переменные из внешней области видимости:

def multiplier(x):

def inner(y): return x * y

return inner

print(multiplier(2)(5)) # 10




2. Изменение внешней переменной — Изменяем значение из внешней функции с помощью nonlocal:

def counter():

count = 0

def increment():

nonlocal count

count += 1

return count

return increment

print(counter()()) # 1




3. Выбор поведения функции — Передаем логику внутрь функции:

def apply(op, x, y):

return (lambda a, b: a + b if op == "add" else a * b)(x, y)

print(apply("add", 2, 3)) # 5




👉 Python Ready | #техсобес