АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗pyPmFnIFN 22 of 129 menu
Бесплатная Тренировка Верстки. Приглашаются желающие поверстать!

Нюансы при работе с внутренней функцией в Python

В Python могут быть не только вложенные функции, но и одна функция может возвращать другую. Например, пусть функция outer возвращает как результат исходный код функции inner:

def outer(): def inner(): return '+++' return inner

Давайте запишем вызов outer в переменную res:

res = outer() print(res)

После выполнения кода выведется объект с функцией:

<function outer.<locals>.inner at 0x000001564A212B90>

Если же вызвать переменную res с круглыми скобками, то вернется сообщение '+++':

print(res()) # выведет '+++'

Можно переписать код так, чтобы в res записывалась outer с двумя круглыми скобками - для вызова самой себя и функции inner. Из чего следует, что можно записывать дополнительные круглые скобки справа от внешней функции по количеству, вложенных в нее функций:

res = outer()() print(res) # выведет '+++'

Дан следующий код:

def outer(): def inner(num): return num + 2 return inner res = outer()(3) print(res)

Скажите, что выведется в консоль.

Дан следующий код:

def outer(): def inner(txt): return 'hello, ' + txt return inner res = outer() print(res)

Скажите, что выведется в консоль.

enru