Внутренние функции захватывает внешнюю переменную? - PullRequest
0 голосов
/ 02 июля 2018
def outer_function(some_function):
    def inner_function(arg):
        print arg
    return inner_function

def function_2(a):
    return a

x = outer_function(function_2)
x(3)

Моя проблема здесь заключается в том, как inner_function может захватить аргумент, который я передал x, равному 3. Как внутренняя функция может захватить аргумент внешней функции?

1 Ответ

0 голосов
/ 02 июля 2018

Внутренняя функция не захватывает аргумент внешней функции.

x = outer_function(function_2)

x теперь является ссылкой на inner_function, которая принимает аргумент и печатает его.

x(3)

Это то же самое, что и inner_function(3), который печатает только 3, поэтому печатается 3.

...