Python, импортировать строку кода Python как модуль

В python вы можете сделать что-то подобное, чтобы импортировать модуль, используя строковое имя файла, и назначить его пространству имен переменной в локальном пространстве имен.

x = __import__(str)

Мне интересно, есть ли связанная функция, которая будет принимать строку кода Python вместо пути к файлу с кодом Python и возвращать свое пространство имен в качестве переменной.

Например,

str = "a = 5";
x = importstr(str)
print x.a
#output is 5

I понимаете, что я могу записать строку в файл, а затем использовать в ней __ import __ , но я бы хотел пропустить промежуточный файл, если это возможно.

Причина в том, что я экспериментирую с метапрограммирование на питоне, и это кажется хорошим решением того, что я делаю.

16
задан Mike 1 September 2010 в 01:56
поделиться

2 ответа

Вот пример динамического создания объектов модулей с использованием модуля imp

14
ответ дан 30 November 2019 в 21:27
поделиться

Это то, что вы ищете?

my_namespace = {}
exec "a = 5" in my_namespace
print my_namespace["a"]
2
ответ дан 30 November 2019 в 21:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: