Alternativas a exec / eval?

He estado tratando de encontrar una manera de establecer y obtener valores de variables de manera confiable con los nombres en las cadenas. Todo lo que puedo encontrar remotamente cerca de esto no parece funcionar siempre. Las variables pueden estar en cualquier módulo y esos módulos son importados.

¿Cuál es la forma segura / correcta de obtener y establecer los valores de las variables?

ps – soy tan nuevo como ellos vienen a python

Si bien funcionaría, generalmente no se recomienda usar nombres de variables que tengan un significado para el progtwig en sí.

En su lugar, mejor use un dict:

mydict = {'spam': "Hello, world!"} mydict['eggs'] = "Good-bye!" variable_name = 'spam' print mydict[variable_name] # ==> Hello, world! mydict[variable_name] = "some new value" print mydict['spam'] # ==> "some new value" print mydict['eggs'] # ==> "Good-bye!" 

(código tomado de la otra respuesta y modificado)

 spam = "Hello, world!" variable_name = 'spam' print globals()[variable_name] # ==> Hello, world! globals()[variable_name] = "some new value" print spam # ==> some new value