也许我缺少多重继承的一些基本方面,但是我相信应该有一种方法可以使这项工作实现。
假设您有一个类A
和一个属性a
,一个类B
和一个属性b
,依此类推,直到一个类{{1} },属性为Z
。
所有父类都有一个返回值为z
的方法,例如not None
,并且您想在由__repr__
实现的方法中组合返回值。
我了解以下内容不是有效的python代码,仅供参考。
Child
在from collections import ChainMap
class A(object):
def __init__(self):
self.a = "A"
def __repr__(self):
return {
"a": self.a
}
class B(object):
def __init__(self):
self.b = "B"
def __repr__(self):
return {
"b": self.b
}
...
class Z(object):
def __init__(self):
self.z = "Z"
def __repr__(self):
return {
"z": self.z
}
class Child(A, B, ..., Z):
def __init__(self):
super(Child, self).__init__()
def __repr__(self):
return ChainMap(
*calling_all_supers(Child, self).__repr__()
)
类上调用__repr__
的预期结果将是:
Child
如何实现{
"a":"a",
"b":"b",
...
"z":"z"
}
?
使用属性代替方法时,如何获得相似的结果?