【发布时间】:2018-02-05 16:24:27
【问题描述】:
我有一个父类,它有一个返回新对象的方法。我希望该对象与 self 具有相同的类型(即,如果在 Parent 类中调用 Parent,如果在 Child 实例中调用 Child)。
class Parent(object):
def __init__(self,param):
self.param = param
def copy(self):
new_param = some_complicated_stuff(self.param)
return Parent(new_param)
class Child(Parent):
pass
C = Child(param)
D = C.copy()
这里的D = C.copy() 将是Parent 类型,而不管C 是什么类。我希望复制返回与C 相同类的实例,同时将“some_complicated_stuff”部分保留在父类中以避免代码重复。
上下文:Parent 是一个抽象组结构,“复制”返回子组(进行一系列代数运算),并且我有许多不同的 Child 类使用这种方法。
【问题讨论】:
-
type(self)(new_param)
标签: python inheritance