记录Python类多继承的一些trick

  1. 多继承场景1
  • 有时候有类别A,以及继承类别A的B,需要修改A得到A_,也需要继承这个A_的B,但是不想重写B,这时候就可以用到多继承了:
class A:
  def __init__(self):
      self.num = 0
  
  def forward(self):
      self.num = 1
      print('A.num={}'.format(self.num))

class B(A):
  def forward(self):
      super().forward()
      self.num *= 10
      print('B.num={}'.format(self.num))

class A_(A):
  def forward(self):
      self.num = 2
      print('A_.num={}'.format(self.num))

class B_(B, A_):
  def forward(self):
      super().forward()
      print('B_.num={}'.format(self.num))

if __name__ == '__main__':
  b_ = B_()
  b_.forward()

打印结果为:

A_.num=2
B.num=20
B_.num=20

你可能感兴趣的:(记录Python类多继承的一些trick)