1

是否可以更改方法解析顺序?

class A(object):
    def __init__(self, a):
        self.a=a
    def method(self):
        print('A method')
class B(object):
    def __init__(self, b1, b2):
        self.b1=b1
        self.b2=b2
    def method(self):
        print('B method')
class C(A, B):
    def __init__(self, name, **kwargs):
        if name=='A':
            A.__init__(self, a=kwargs['a'])
        elif name=='B':
            B.__init__(self, b1=kwargs['b1'], b2=kwargs['b2'])

如果输入是“B”,我想更改 MRO name,这样当我打电话时:

>>>c=C(name='B', b1=2, b2=3)
>>>c.method()

它返回“B 方法”。

谢谢

4

1 回答 1

-1

只需将 C 类的定义更改为: class C(B, A): ... 即:更改继承类的顺序。

于 2017-09-29T06:59:04.640 回答