muc*_*out 6 python multiple-inheritance mixins
我有一节课:
class A(object):
def __init__(self, *args):
# impl
Run Code Online (Sandbox Code Playgroud)
也是一个"mixin",基本上是另一个带有一些数据和方法的类:
class Mixin(object):
def __init__(self):
self.data = []
def a_method(self):
# do something
Run Code Online (Sandbox Code Playgroud)
现在我用mixin创建一个A的子类:
class AWithMixin(A, Mixin):
pass
Run Code Online (Sandbox Code Playgroud)
我的问题是我想要调用A和Mixin的构造函数.我考虑给AWithMixin一个自己的构造函数,其中调用了super,但是超类的构造函数有不同的参数列表.什么是最佳分辨率?
kec*_*ske 10
class A_1(object):
def __init__(self, *args, **kwargs):
print 'A_1 constructor'
super(A_1, self).__init__(*args, **kwargs)
class A_2(object):
def __init__(self, *args, **kwargs):
print 'A_2 constructor'
super(A_2, self).__init__(*args, **kwargs)
class B(A_1, A_2):
def __init__(self, *args, **kwargs):
super(B, self).__init__(*args, **kwargs)
print 'B constructor'
def main():
b = B()
return 0
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
我对OOP也很新,但是这个代码有什么问题:
class AWithMixin(A, Mixin):
def __init__(self, *args):
A.__init__(self, *args)
Mixin.__init__(self)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4474 次 |
| 最近记录: |