class ClassA: pass
mytype = type(ClassA)
Run Code Online (Sandbox Code Playgroud)
使用mytype,如何创建ClassA实例?
请注意,我不是在寻找这个作为我的答案:)
instance = ClassA()
Run Code Online (Sandbox Code Playgroud)
我知道在这个例子中,这就是你需要做的所有事情,但是假设你有这种类型(mytype),你对它一无所知,你需要创建它的一个实例.
我试着调用mytype()并返回一个错误,指出type()需要1或3个参数.我想这些参数可能与你想要传递给正在创建的对象的init方法的任何参数有关.
注意:我已经看到了一些问题,询问如何在给定表示其完全限定名称的字符串的情况下创建对象.请注意,在这里,我已经有一个类型,所以它有点不同?我认为?
编辑...我曾希望我可以做相同的以下.Net代码:
class A {}
class Program
{
static void Main(string[] args)
{
Type type = typeof(A);
// Given the type, I can create a new instance
object new_instance = Activator.CreateInstance(type);
}
}
Run Code Online (Sandbox Code Playgroud)
我假设在Python中,类型(ClassA)提供了一些东西,我以后可以使用它来创建ClassA的实例.看起来我误解了python中的类型.
Chr*_*sse 22
如果你使用一个新的样式类,它将工作:
class ClassA(object):
pass
o = ClassA()
mytype = type(o)
new_object = mytype()
Run Code Online (Sandbox Code Playgroud)