【发布时间】:2010-10-28 00:39:28
【问题描述】:
我记得有一次,it was said that Python is less object oriented than Ruby,因为在 Ruby 中,一切都是对象。这对于 Python 也有变化吗?最新的 Python 是否比以前的版本更面向对象?
【问题讨论】:
-
在 Python 中,一切都是对象。你读了什么资料?能否提供网址或报价?
-
@S.Lott — 他是对的;事实上,Ruby 的“关于”页面仍然将其描述为 Ruby 的起源。引用 Matz 的话说:“我想要一种比 Perl 更强大、比 Python 更面向对象的脚本语言。” ruby-lang.org/en/about
-
我也有同样的看法。 Python 从一开始就更加“结构化”,而 Ruby 天生就是纯 OO。但我不知道为什么..
-
在 Ruby 中有些东西不是对象。它们伪装成对象,并且(大部分)充当对象,但事实并非如此。不相信我?尝试为数字 3 (
a = 3; def a.foo ; end) 定义一个单例方法,然后将显示非对象的锐边。 -
@banister,您的看法与我之前考虑的不同,不一定是错的。从 Ruby 源代码中,我们知道大多数变量都是作为引用保存的,它们本质上指向包含对象的内存,但是对于某些类型,例如 Fixnum,对象的值在引用本身中。这就是为什么你不能在 4 上定义单例:没有可以附加单例的普通实例。与其将“4”视为具有特殊限制的对象,在我看来,它似乎是一个“非对象”,看起来大部分像一个对象。