如何从字符串中获取范围中的值

时间:2010-08-29 09:48:52

标签: python

from module import * # adds 'BlahRenderer', 'FooRenderer', 'BarRenderer', etc.
class MyClass
    def __init__(self, value)
        renderer = "%sRenderer" % value
        self.RendererClass = ????

我知道这可以通过在__init__内部导入然后执行locals()[renderer]来完成,但如果导入位于顶部,我该怎么办呢?

1 个答案:

答案 0 :(得分:3)

尝试使用globals()代替locals()

尽管您的module定义字典或工厂以将每个value映射到渲染器可能会更好,例如

renderers = {'Blah': BlahRenderer, 'Foo': FooRenderer, ...}