关于Python的重复继承,请高手解惑!

新手上路,请多包涵

如下两个类的声明:
class GameLogicInterface(Actor, SocketWrapperMixin, TimerMixin, protocol.Protocol):

class GameLogic(GameLogicInterface, TimerMixin, CardTypeMixin, protocol.Protocol):

很明显GameLogic有重复继承,为什么不直接写class GameLogic(GameLogicInterface):?

我知道现在Python的MRO是广度优先,但这样的重复继承没什么问题吗? 不会造成存储浪费吗?

阅读 2.6k
2 个回答

看不出有什么问题。多用个几 k 数据不算什么事吧?

我觉得出现这样的代码,应该是有历史原因的,比如最开始,GameLogicInterface可能并没有从TimerMixinprotocol.Protocol继承,所以它的子类GameLogic需要自行继承这两个类。但从某个时候开始,GameLogicInterface中加入了那两个父类,但又不能(或者不愿意)修改所有子类,所以就出现了你看到的中情况。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题