#python
#python
Вопрос:
Предположим, я написал функцию, которая возвращает функцию:
def my_func(word):
def say():
print(word)
return say
f = my_func("Hello!")
print(f)
<function my_func.<locals>.say at 0x7f39fb454840>
Что <locals>
здесь означает?
Комментарии:
1. Это означает, что имя
say
принадлежит локальным переменнымmy_func
.
Ответ №1:
Локальные и глобальные значения — это таблицы символов. Когда вы запускаете скрипт на Python, интерпретатор поддерживает список всех локальных идентификаторов, т. е. символов с областью действия, ограниченной текущим блоком (например, для функции). Это то, на что <locals>
ссылается ваш вывод. Аналогично, существует список всех вызываемых глобальных идентификаторов globals
.
Вы можете вызвать locals()
и globals()
в любой точке вашего кода, чтобы получить соответствующие таблицы символов в формате словаря