在Python中,从变量实例化类的正确方法是什么?

Uri*_*Uri 8 python instantiation

假设我上课了C.

我可以编写o = C()创建实例C并将其分配给o.

但是,如果我想将类本身分配给变量然后实例化它,该怎么办?

例如,假设我有两个类,例如C1C2,我想做类似的事情:

if (something):
   classToUse = C1
else:
   classToUse = C2

o = classToUse.instantiate()
Run Code Online (Sandbox Code Playgroud)

实际的语法是instantiate()什么?打个电话__new__()好吗?

Cid*_*ide 16

o = C2()
Run Code Online (Sandbox Code Playgroud)

这将实现你想要的.或者,如果您打算使用classToUse,只需使用:

o = classToUse()
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

  • ()表示"调用此".调用类意味着实例化它.在幕后,调用某些东西会调用__call__元方法,你可以使用它来制作例如class*instances*callable. (3认同)

Jef*_*eff 12

你快到了.而不是调用instantiate()方法,只需直接调用变量.它被分配给类,并且类是可调用的:

if (something):
    classToUse = C1
else:
    classToUse = C2

o = classToUse()
Run Code Online (Sandbox Code Playgroud)