我想从NamedAndOrdered
和Named
设计类Ordered
并发现这并不容易,因为父类都有不同的__init__()
参数列表,请参阅示例这个描述。我在Python方面有很长的经验,但仍然不知道如何解决这个问题 - 你能分享一些经验。
class Named(object):
def __init__(self, name):
super(Named, self).__init__()
self.name = name
print type(Named), self.name
class Ordered(object):
def __init__(self, order):
super(Ordered, self).__init__()
self.order = order
print type(Ordered), self.order
class NameAndOrdered(Named, Ordered):
def __init__(self):
super(NameAndOrdered, self).__init__(1)
print 'name', self.name
print 'order', self.order
nameAndOrdered = NameAndOrdered()
此代码不起作用TypeError: __init__() takes exactly 2 arguments (1 given)
,因为Named
尝试调用Ordered
Named
不应该知道Ordered
sice可以在其他地方定义。
如果Named
需要一些不同于Orderd
的参数,如何解决初始化问题?
这个例子是抽象的,它尽可能简化以显示要解决的问题。