Obtendo atributos de um pacote Python que eu não tenho o nome, até a execução
Pergunta
Em um pacote de Python, eu tenho uma string contendo (presumivelmente) o nome de um subpacote. A partir desse subpackage, eu quero recuperar uma tupla de constantes ... Eu realmente não estou mesmo certo como proceder em fazer isso, no entanto.
#!/usr/bin/python
"" The Alpha Package
Implements functionality of a base package under the 'alpha' namespace
""
def get_params(packagename):
# Here, I want to get alpha.<packagename>.REQUIRED_PARAMS
pass
Assim, mais tarde, no meu código eu poderia ter:
#!/usr/bin/python
import alpha
alpha.get_params('bravo') # should return alpha.bravo.REQUIRED_PARAMS
alpha.get_params('charlie') # should return alpha.charlie.REQUIRED_PARAMS
Solução
Se bem entendi o que você quer, acho que algo mais ou menos assim deve funcionar:
def get_params(packagename):
module = __import__('alpha.%s' % packagename)
return module.__dict__['REQUIRED_PARAMS']
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow