以下是我要做什么的一个粗略想法:
class PlayerModel(Timeline):
def __init__(self, name):
self.name = name
self.timeline_min = super(timeline_min) # I don't know the syntax for this
self.timeline_max = super(timeline_max) # I don't know the syntax for this
class Timeline:
def __init__(self):
self.timeline_min = 0
self.timeline_max = 120
def make_model(self, m_name):
return PlayerModel(m_name)
我希望PlayerModel
具有与Timeline
相同的属性:
self.timeline_min = 0
self.timeline_max = 120
位于__init__
中,而不必将它们作为参数传递。我可以使用super()
来实现吗?我找不到一种方法来处理父级变量。
答案 0 :(得分:5)
您应该通过调用Timeline
来让__init__
进行设置:
class PlayerModel(Timeline):
def __init__(self, name):
super().__init__()
self.name = name
除非您在子__init__
方法中显式调用父构造函数,否则Python仅假定您只是想覆盖父构造函数。