用户输入加载课程

时间:2013-07-17 22:56:37

标签: python

这应该很简单,但我找不到合适的谷歌短语来找到它。只是在def loadClass()中查找所需的代码,不知道它会是什么。提前谢谢!

class ClassA():
    def __init__(self,date):
        pass
class ClassB():
    def __init__(self,date):
        pass
def loadClass(className,date):
    loadedClass = className(date)

loadClass(ClassA,'1/1/2013')
loadClass(ClassB,'1/2/2013'

1 个答案:

答案 0 :(得分:2)

如果您确实将字符串作为类名,那么您可以生成“类名”到“类对象”映射的查找,并使用:

allowed_classes = {
    'A': ClassA,
    'B': ClassB
}

def load_class(class_name, *args, **kwdargs):
    return allowed_classes[class_name](*args, **kwdargs)

new_class_obj = load_class('B', 'Jan 1st')