Как работает пространство имен при вызове функции в python? - PullRequest
0 голосов
/ 15 октября 2019

В документах описано, что -

Определение функции - это исполняемый оператор. Его выполнение связывает имя функции в текущем локальном пространстве имен с объектом функции (обертка вокруг исполняемого кода функции). Этот функциональный объект содержит ссылку на текущее глобальное пространство имен в качестве глобального пространства имен, которое будет использоваться при вызове функции.

def func1():
    def func2():
        print("HELLO")    
func1()
func2()

NameError: name 'func2' is not defined

После выполнения func1 выполняется определение func2 и ссылка на его функциональный объектв глобальном пространстве имен. Теперь, даже после присутствия объекта функции func2 в глобальном пространстве имен, почему я не могу вызвать func2 извне тела func1.

Я новичок в программировании, и я делаю это просто для того, чтобыхорошее представление о функциях, если у меня возникли какие-либо недоразумения, объясните, пожалуйста, как работает пространство имен во время вызова функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...