Attribute eines Python-Pakets, dessen Namen ich nicht kenne, bis zur Laufzeit abrufen

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

  •  19-08-2019
  •  | 
  •  

Frage

In einem Python-Paket habe ich eine Zeichenfolge, die (vermutlich) den Namen eines Unterpakets enthält.Aus diesem Unterpaket möchte ich ein Tupel von Konstanten abrufen ... Ich bin mir allerdings nicht einmal sicher, wie ich dabei vorgehen soll.

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

Später in meinem Code könnte ich also Folgendes haben:

#!/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
War es hilfreich?

Lösung

Wenn ich richtig verstehe, was Sie wollen, denke ich, dass ungefähr so ​​etwas funktionieren sollte:

def get_params(packagename):
    module = __import__('alpha.%s' % packagename)
    return module.__dict__['REQUIRED_PARAMS']
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top