开发者

How do you grab a value from the scope from a string

from module import * # adds 'BlahRenderer', 'FooRenderer', 'BarRend开发者_开发技巧erer', etc.
class MyClass
    def __init__(self, value)
        renderer = "%sRenderer" % value
        self.RendererClass = ????

I know this can be done by doing the import inside __init__ and then doing locals()[renderer] but how do I do it if the import is at the top?


Try globals() instead of locals().

Although it may be better that your module defines a dictionary or Factory to map each value into a Renderer e.g.

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜