Obtention des attributs d'un paquet Python dont je n'ai pas le nom jusqu'à l'exécution

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

  •  19-08-2019
  •  | 
  •  

Question

Dans un package Python, j'ai une chaîne contenant (vraisemblablement) le nom d'un sous-package. À partir de ce sous-paquet, je veux récupérer un tuple de constantes ... Je ne sais vraiment pas comment procéder, cependant.

#!/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

Ainsi, plus tard dans mon code, je pourrais avoir:

#!/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
Était-ce utile?

La solution

Si je comprends bien ce que vous voulez, je pense qu'un procédé comme celui-ci devrait fonctionner:

def get_params(packagename):
    module = __import__('alpha.%s' % packagename)
    return module.__dict__['REQUIRED_PARAMS']
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top