В python вы можете сделать что-то подобное, чтобы импортировать модуль, используя строковое имя файла, и назначить его пространству имен переменной в локальном пространстве имен.
x = __import__(str)
Мне интересно, есть ли связанная функция, которая будет принимать строку кода Python вместо пути к файлу с кодом Python и возвращать свое пространство имен в качестве переменной.
Например,
str = "a = 5";
x = importstr(str)
print x.a
#output is 5
I понимаете, что я могу записать строку в файл, а затем использовать в ней __ import __
, но я бы хотел пропустить промежуточный файл, если это возможно.
Причина в том, что я экспериментирую с метапрограммирование на питоне, и это кажется хорошим решением того, что я делаю.
Это то, что вы ищете?
my_namespace = {}
exec "a = 5" in my_namespace
print my_namespace["a"]