Там это часть __import__
в документации на Python, который я не понимаю:Что такое параметры `globals` и` locals` в функции Python __import__?
__import__(name[, globals[, locals[, fromlist[, level]]]])
Функция импортирует модуль
name
, потенциально используя данныйglobals
иlocals
, чтобы определить, как интерпретироватьname
в контексте пакета. Стандартная реализация не использует свой аргументlocals
вообще и использует свойglobals
только для определения контекста пакета оператора импорта.
Что нужно для «толкования» имени модуля? Что такое контекст пакета?
Пример вызов с использованием этих параметров выглядит следующим образом:
spam = __import__('spam', globals(), locals(), [], -1)
Почему пример обеспечивает globals()
и locals()
к функции? Что происходит, когда я предоставляю только globals()
? Или нет?
Возможно, у меня есть часть логики пространства имен, связанная с импортом модулей. Не могли бы вы указать мне статью, которая объясняет это/имеет примеры с функцией __import__
?
Не следует ли переместить этот вопрос в StackOverflow? – EOL
Это смешно, я начал писать это в SO, но думал, следует ли мне публиковать его на программистах.SE вместо этого ... Мне явно нужно посмотреть часто задаваемые вопросы ... –
Вы должны выбрать один из следующих ответов в качестве принятый ответ на этот вопрос. ИМХО, ответ 9000 поражает гвоздь на голове, объясняя, что делает Python с 'globals', чтобы определить пространство имен модулей. – Kumba