代码之家  ›  专栏  ›  技术社区  ›  pdenlinger

Ruby如何比Python更面向对象?

  •  22
  • pdenlinger  · 技术社区  · 15 年前

    发明Ruby的Matz说,他设计的语言比Python更面向对象。Ruby如何比Python更面向对象?

    4 回复  |  直到 12 年前
        1
  •  22
  •   nikow    12 年前

    如果从1993年开始将Python与Ruby进行比较,那么后者更面向对象。但是,在 overhaul in Python 2.2 这不再是真的了。我想说的是,现代的Python是尽可能面向对象的。

        2
  •  15
  •   Eli Bendersky    15 年前

    通常给出的一个例子是 len 在python中是一个内置函数。你可以执行一个特殊的 __len__ 对象中的方法,将由 伦恩 但是 伦恩 仍然是一个函数。在Ruby中,对象只有 .length 属性/方法,因此当您说 obj.length 而不是 len(obj) 尽管在引擎盖下很深的地方也会发生同样的事情。

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

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

        3
  •  9
  •   Anurag    15 年前

    WikiVS ,

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

    以下内容 interview Ruby的创建者Matz为您的问题和上面的要点提供了额外的上下文。

    斯图尔特 让我们从历史开始。你为什么决定写鲁比?

    马茨 :早在1993年,我就和一位同事谈论脚本语言。他们的力量和可能性给我留下了深刻的印象。我觉得脚本是一种方式。

    作为一个长期的面向对象编程迷,在我看来OO编程也非常适合脚本编写。然后我环顾了一下网。我发现尚未发布的Perl5将实现OO特性,但它并不是我真正想要的。我放弃了Perl作为面向对象的脚本语言。

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

    我想要一种比Perl更强大的脚本语言, 比Python更面向对象 . 所以我决定设计自己的语言。

        4
  •  -2
  •   ab217    15 年前

    很简单, 几乎所有的 在Ruby中(包括数字)是一个对象;没有标量值。

    推荐文章