Что означает в имени функции?

#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() в любой точке вашего кода, чтобы получить соответствующие таблицы символов в формате словаря