python中的多重继承与组合
我对OOP及其在Java中的习惯用法有很好的理解 现在我正在用python编码,我的处境是多重继承可能很有用,但是(这可能是由于多年的java代码),我不愿意这样做,我正在考虑使用组合而不是继承,以避免与潜在的相等方法名发生潜在冲突 问题是,我对这件事是过于严格还是过于关注java。或者在python中使用多重继承不仅是可能的,而且也是值得鼓励的python中的多重继承与组合,python,Python,我对OOP及其在Java中的习惯用法有很好的理解 现在我正在用python编码,我的处境是多重继承可能很有用,但是(这可能是由于多年的java代码),我不愿意这样做,我正在考虑使用组合而不是继承,以避免与潜在的相等方法名发生潜在冲突 问题是,我对这件事是过于严格还是过于关注java。或者在python中使用多重继承不仅是可能的,而且也是值得鼓励的 感谢您的时间:)我仍然更喜欢组合而不是继承,无论是多个还是单个。真正进入duck类型有点像到处都有大量隐式接口,所以在Python中根本不需要继承(或
感谢您的时间:)我仍然更喜欢组合而不是继承,无论是多个还是单个。真正进入duck类型有点像到处都有大量隐式接口,所以在Python中根本不需要继承(或抽象类)。但是这是更喜欢组合,而不是永远不要使用继承。如果继承(即使是多个)是一个很好的选择,而组合不是,那么就使用继承。继承与组合的问题归结为试图解决可重用代码的问题。您不希望代码中到处都是重复的代码,因为这样做既不干净也不高效。继承通过在基类中创建一种隐含特性的机制来解决这个问题。Composition通过给您模块和简单调用其他类中的函数的能力来解决这个问题 如果这两种解决方案都解决了重用问题,那么哪种解决方案适用于哪种情况?答案是非常主观的,但我会给你我的三个指导原则,告诉你什么时候做:
有关更多详细信息,请访问:在Python中,您必须处理名称冲突。顺便说一句,读+1到JBernardo,我同意。冲突的方法名并不是避免多重继承的原因,因为Python有一个非常干净、定义良好的“优先顺序”,在发生冲突时,该方法会被继承。只要确保你知道它是什么。这个链接在付费墙后面。点击诱饵?