在Python中,如何创建与旧对象相同类型的新对象?

问题描述:

假设我们有一个对象x,但我们不知道从哪个类x实例化。我们想要创建一个与x相同类型的新对象y在Python中,如何创建与旧对象相同类型的新对象?

如果我们知道哪些类X是从实例,我们可以简单地调用类的构造函数/初始化:

y = NameOfClass() 

然而,我们不知道的类X的名字是从实例化。

主要的问题可以分解为两个子问题:

1)如何找出数据类型x是?
2)给定一个数据类型(存储在计算机的某个地方)如何创建一个新类型的对象?

NameOfClass = type(x) 
y = NameOfClass() 
+1

这是假设该类实际上*有*一个构造函数,以这种方式工作。 – user2357112

+0

如果需要参数会怎么样?你不能认为这会起作用。如果构造正确,'__repr__' * *可以显示如何重新创建至少一些状态,但不能保证。 – jonrsharpe