from module import * # adds 'BlahRenderer', 'FooRenderer', 'BarRenderer', etc.
class MyClass
def __init__(self, value)
renderer = "%sRenderer" % value
self.RendererClass = ????
我知道这可以通过在__init__
内部导入然后执行locals()[renderer]
来完成,但如果导入位于顶部,我该怎么办呢?
答案 0 :(得分:3)
尝试使用globals()
代替locals()
。
尽管您的module
定义字典或工厂以将每个value
映射到渲染器可能会更好,例如
renderers = {'Blah': BlahRenderer, 'Foo': FooRenderer, ...}