nik*_*kow 21
如果从1993年开始使用Python并将其与Ruby进行比较,则后者更加面向对象.但是,在Python 2.2中进行大修之后,这已不再适用.我会说现代Python就像面向对象一样.
Eli*_*sky 15
通常给出的一个例子是len,Python中的内置函数.您可以__len__在对象中实现一个特殊方法,该方法将被调用len,但len仍然是一个函数.在Ruby中,对象只有.length属性/方法,所以当你说obj.length而不是len(obj)虽然深入到底层时,它看起来更像面向对象.
也就是说,多年来Python已经朝着更加面向对象的方向发展.目前,所有对象(以及隐式的用户定义对象)都继承自object该类.还添加了元类,并且在ABCs(抽象基类)的帮助下,许多内置和核心库类已被组织成层次结构.
在我大量使用Python的过程中,我从来没有发现它在OO部门中缺乏.它可以做我想要它与对象做的一切.诚然,Ruby 感觉更纯粹是OO,但至少根据我的经验,这并不是一个真正的实际问题.
Anu*_*rag 10
来自WikiVS,
...在Ruby中所有函数和大多数运算符实际上是对象的方法,许多Python函数是过程函数而不是方法.
下面采访 Ruby的创建者Matz,为您的问题和上述观点提供了额外的背景.
...
斯图尔特:让我们从一点历史开始吧.你为什么决定写Ruby?
Matz:早在1993年,我就和一位同事谈论脚本语言.他们的力量和可能性让我印象深刻.我觉得脚本是要走的路.
作为一个长期面向对象的编程爱好者,在我看来,OO编程也非常适合编写脚本.然后我环顾网络.我发现尚未发布的Perl 5将实现OO功能,但它并不是我想要的.我放弃了Perl作为面向对象的脚本语言.
然后我遇到了Python.它是一种解释性的,面向对象的语言.但我不觉得它是一种"脚本"语言.此外,它是程序编程和面向对象编程的混合语言.
我想要一种比Perl更强大的脚本语言,并且比Python更面向对象.这就是为什么我决定设计自己的语言.
...