首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Ruby比Python更面向对象?

为什么Ruby比Python更面向对象?
EN

Stack Overflow用户
提问于 2010-09-08 15:55:27
回答 4查看 5.9K关注 0票数 23

发明了Ruby的Matz说,他把Ruby设计成比Python更面向对象的语言。为什么Ruby比Python更面向对象?

EN

回答 4

Stack Overflow用户

发布于 2010-09-08 18:02:28

如果您将1993年的Python与Ruby进行比较,那么Ruby更加面向对象。然而,在overhaul in Python 2.2之后,这不再是真的。我要说的是,现代的Python是最面向对象的。

票数 23
EN

Stack Overflow用户

发布于 2010-09-08 16:39:32

一个常见的例子是len,在Python语言中它是一个内置函数。您可以在对象中实现一个特殊的__len__方法,该方法将被len调用,但len仍然是一个函数。在Ruby中,对象只有.length属性/方法,所以当你说obj.length而不是len(obj)时,它看起来更像是面向对象的,尽管在幕后同样的事情也会发生。

也就是说,多年来,Python已经向更加面向对象的方向发展。目前,所有对象(以及隐式用户定义的对象)都继承自object类。还添加了元类,并且在抽象基类(Abstract Base Classes)的帮助下,许多内置和核心库类被组织成层次结构。

在我大量使用Python的过程中,我从未发现OO部门缺少它。它可以对对象做任何我想做的事情。诚然,Ruby感觉更纯粹的面向对象,但至少在我的经验中,这并不是一个真正的实际问题。

票数 17
EN

Stack Overflow用户

发布于 2010-09-08 16:11:46

来自WikiVS

…在Ruby中,所有函数和大多数操作符实际上都是对象的方法,而许多Python函数是过程函数而不是方法。

下面这篇关于Ruby的创建者Matz的interview为你的问题和上面的观点提供了额外的上下文。

Stewart:让我们从一个小的历史开始。你为什么决定写Ruby?

Matz:早在1993年,我和一位同事谈到了脚本语言。他们的力量和可能性给我留下了深刻的印象。我觉得脚本化是最好的选择。

作为一个长期的面向对象编程爱好者,在我看来,OO编程也非常适合脚本编程。然后我看了看四周的网。我发现还没有发布的Perl 5将要实现面向对象的特性,但这并不是我真正想要的。我放弃了Perl作为一种面向对象的脚本语言。

然后我遇到了Python。它是一种解释性的、面向对象的语言。但我不觉得它是一种“脚本”语言。此外,它是过程编程和面向对象编程的混合语言。

我想要一种比Perl更强大、比Python更面向对象的脚本语言。这就是为什么我决定设计自己的语言。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3665656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档