在Python中,从变量实例化类的正确方法是什么?
假设我有一个类叫做 C
。
我可以写 o = C()
来创建这个类的一个实例,并把它赋值给 o
。
但是,如果我想把这个类本身赋值给一个变量,然后再实例化它,该怎么做呢?
比如说,我有两个类,分别是 C1
和 C2
,我想做类似这样的事情:
if (something):
classToUse = C1
else:
classToUse = C2
o = classToUse.instantiate()
那么,实际的 instantiate()
语法是什么呢?调用 __new__()
够吗?
4 个回答
2
这很简单,Python 不会区分一个变量是类还是函数。它只是把这个值当作普通的值来处理。
class A:
pass
B=A
b=B()
13
你快到了。与其调用一个叫 instantiate() 的方法,不如直接调用这个变量。这个变量已经和类关联起来了,而类是可以直接调用的:
if (something):
classToUse = C1
else:
classToUse = C2
o = classToUse()
20
o = C2()
这样就能实现你想要的效果。如果你是想用classToUse的话,可以直接这样写:
o = classToUse()
希望这对你有帮助。