在Python中,如何创建与旧对象相同类型的新对象?
问题描述:
假设我们有一个对象x
,但我们不知道从哪个类x
实例化。我们想要创建一个与x
相同类型的新对象y
。在Python中,如何创建与旧对象相同类型的新对象?
如果我们知道哪些类X是从实例,我们可以简单地调用类的构造函数/初始化:
y = NameOfClass()
然而,我们不知道的类X的名字是从实例化。
主要的问题可以分解为两个子问题:
1)如何找出数据类型x是?
2)给定一个数据类型(存储在计算机的某个地方)如何创建一个新类型的对象?
答
NameOfClass = type(x)
y = NameOfClass()
这是假设该类实际上*有*一个构造函数,以这种方式工作。 – user2357112
如果需要参数会怎么样?你不能认为这会起作用。如果构造正确,'__repr__' * *可以显示如何重新创建至少一些状态,但不能保证。 – jonrsharpe