Obtendo atributos de um pacote Python que eu não tenho o nome, até a execução

StackOverflow https://stackoverflow.com/questions/474331

  •  19-08-2019
  •  | 
  •  

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
Foi útil?

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
scroll top