使用用户输入来加载类

2024-10-03 00:19:35 发布

您现在位置: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'

Tags: 代码selfdateinitdefpassclassclassname
1条回答
网友
1楼 · 发布于 2024-10-03 00:19:35

如果按字面意思将字符串作为类名,则可以生成从“类名”到“类对象”映射的查找,并使用:

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')

相关问题 更多 >