如何将Ruby模块包含在内并不是"多重继承",Ruby样式如何避免与多重继承相关的问题?

hor*_*guy 13 ruby multiple-inheritance mixins

据称Matz说"mixins几乎可以完成多重继承所做的一切,没有相关的缺点"(Matz的话)."

首先,为什么Ruby模块包含不是'多重继承'?在我看来,模块和类之间几乎没有什么区别.当它用作超类时,无法实例化模块这一事实无关紧要.

我也知道,连续的模块包含形成了从类向上扩展的单个继承链(不是树).但是,对我来说,这不足以将它与"多重继承"区分开来,因为Python多重继承系统也"线性化"超类链(使用C3算法),只是Ruby'线性化'过程非常简单.

那么,对于像Python这样的语言,Ruby模块混合与多重继承的确切区别是什么呢?为什么Python采用c3 MRO算法背后的论据不适用于Ruby?如果他们确实适用 - 为什么Ruby决定不采用这种算法?

谢谢

A. *_*son 3

代表 Mladen 添加此内容作为实际答案,因为我发现它非常有帮助,而且我猜答案对于 SO 所做的任何疯狂的事情都会得到更好的索引。

\n\n
\n

这是一篇关于此事的好文章,看看它是否回答了您的问题:http://artima.com/weblogs/viewpost.jsp ?thread=246488 \xe2\x80\x93 Mladen\​​n Jabanovi\xc4\x87 Oct 2010 年 28 月 18 日 23 分

\n
\n