如下两个类的声明:
class GameLogicInterface(Actor, SocketWrapperMixin, TimerMixin, protocol.Protocol):
class GameLogic(GameLogicInterface, TimerMixin, CardTypeMixin, protocol.Protocol):
很明显GameLogic有重复继承,为什么不直接写class GameLogic(GameLogicInterface):?
我知道现在Python的MRO是广度优先,但这样的重复继承没什么问题吗? 不会造成存储浪费吗?
看不出有什么问题。多用个几 k 数据不算什么事吧?
我觉得出现这样的代码,应该是有历史原因的,比如最开始,GameLogicInterface
可能并没有从TimerMixin
和protocol.Protocol
继承,所以它的子类GameLogic
需要自行继承这两个类。但从某个时候开始,GameLogicInterface
中加入了那两个父类,但又不能(或者不愿意)修改所有子类,所以就出现了你看到的中情况。