从字符串列表创建多个类

时间:2016-03-22 16:05:23

标签: python list python-2.7 class

我有一个字符串列表如下:

list = ['ContactHandler', 'LogHandler', 'FileHandler', 'SystemHandler', 'WelcomeHandler'] 

我想使用此列表在for循环中创建5个类。下面显示了一个类的示例。

class WelcomeHandler(BaseHandler):
        def get(self):
            response = HTTPResponse()
            response.write('WelcomeHandler')
            return response

2 个答案:

答案 0 :(得分:1)

创建一个将名称映射到类的字典:

classLookup = {
    'ContactHandler': ContactHandler, 
    'LogHandler'    : LogHandler,
    #...
}

然后,您可以基于字符串

实例化正确的类
className = input('what class to instantiate?')
handler = classLookup[className]()

答案 1 :(得分:1)

你应该为你的类使用一个字典,并像这样定义它们:

classes = {}
for name in classlist:
    class Handler(BaseHandler):
        def get(self):
            response = HTTPResponse()
            response.write(self.__class__.__name__)
            return response
    Handler.__name__ = name
    classes[name] = Handler