En python puede hacer algo como esto para importar un módulo utilizando un nombre de archivo de cadena, y asignarle una espacio de nombre al espacio de nombres local.Python, importe una cadena de código Python como módulo
x = __import__(str)
Me pregunto si hay una función relacionada que se llevará a tomar una cadena de código Python, en lugar de una ruta a un archivo con código Python, y devolver su espacio de nombres como una variable.
Por ejemplo,
str = "a = 5";
x = importstr(str)
print x.a
#output is 5
Soy consciente de que podría escribir la cadena en un archivo, a continuación, utilizar __import__
en él, pero me gustaría saltar el archivo intermedio, si es posible.
La razón de esto es que estoy experimentando con la metaprogramación en python, y parece una buena solución para lo que estoy haciendo.
Sí, justo de la manera correcta. –
hrm ... obtuve mi primer voto negativo con esta respuesta y no estoy seguro de por qué? –
@JeremyBrown justo lo que estaba buscando. Como lo voté, considere el voto negativo deshecho;) –