الحصول على سمات حزمة بيثون أن ليس لدي اسم، حتى وقت التشغيل

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

  •  19-08-2019
  •  | 
  •  

سؤال

في حزمة بيثون، ولدي سلسلة تحتوي على (يفترض) اسم حزمة فرعية. من أن حزمة فرعية، وأريد أن استرداد الصفوف (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']
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top