python与组合中的多重继承

Jua*_*ano 6 python

我对 Java 中的 OOP 及其习语有深刻的理解。

现在我正在用 python 编码,我处于多重继承可能有用的情况,但是(这可能是由于多年的 Java 代码),我不愿意这样做,我正在考虑使用组合而不是继承以避免与潜在的相等方法名称发生潜在冲突。

问题是,我在这件事上是过于严格还是过于专注于 Java。或者在 python 中使用多重继承不仅是可能的,而且是鼓励的。

谢谢你的时间 :)

Yas*_*sin 7

“继承与组合”的问题归结为试图解决可重用代码的问题。您不希望在您的代码中使用重复的代码,因为这既不干净又不高效。继承通过创建一种机制来解决这个问题,让您在基类中具有隐含的特征。组合通过为您提供模块和简单地调用其他类中的函数的能力来解决这个问题。

如果这两种解决方案都解决了复用问题,那么哪种解决方案适用于哪些情况?答案非常主观,但我会为您提供我的三个指导原则,以指导您何时执行以下操作:

  1. 不惜一切代价避免多重继承,因为它太复杂而无法可靠地使用。如果您坚持使用它,那么准备好了解类层次结构并花时间查找所有内容的来源。
  2. 使用组合将代码打包成模块,这些模块用于许多不同的不相关的地方和情况。
  3. 仅当存在适合单个通用概念的明确相关的可重用代码段时,或者由于您正在使用的某些东西而必须使用继承时,才使用继承。

但是,不要成为这些规则的奴隶。关于面向对象编程要记住的一点是,它完全是程序员为打包和共享代码而创建的一种社会惯例。因为这是一种社会惯例,但已编入 Python 中,您可能会因为与您一起工作的人而被迫避免这些规则。在这种情况下,找出他们如何使用事物,然后适应这种情况。

可以在以下位置找到更多详细信息:http : //learnpythonthehardway.org/book/ex44.html

  • 该链接位于付费墙后面。点击诱饵? (2认同)