0

これは簡単なはずですが、それを見つけるための適切な Google フレーズが見つかりません。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'
4

1 に答える 1

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')
于 2013-07-17T23:00:29.677 に答える