الحصول على سمات حزمة بيثون أن ليس لدي اسم، حتى وقت التشغيل
سؤال
في حزمة بيثون، ولدي سلسلة تحتوي على (يفترض) اسم حزمة فرعية. من أن حزمة فرعية، وأريد أن استرداد الصفوف (tuple) من الثوابت ... أنا حقا لا بل متأكد من كيفية المضي قدما في القيام بذلك، على الرغم من.
#!/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
وهكذا، في وقت لاحق في قانون بلدي وأنا قد يكون لديك:
#!/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
المحلول
إذا أنا صحيح فهم ما تريد، وأعتقد أن هناك شيئا ما يقرب من هذا القبيل يجب أن تعمل:
def get_params(packagename):
module = __import__('alpha.%s' % packagename)
return module.__dict__['REQUIRED_PARAMS']
لا تنتمي إلى StackOverflow