我记得有一次,it was said that Python is less object oriented than Ruby ,因为在 Ruby 中,一切都是对象。这对 Python 也有改变吗?最新的 Python 是否比以前的版本更面向对象?
最佳答案
Jian Lin — 答案是"is",Python 比 Matz 决定创建 Ruby 时更面向对象,而且这两种语言现在都具有“一切皆对象”的特点。回到 Python 年轻的时候,像字符串和数字这样的“类型”缺少方法,而“对象”是用“class”语句构建的(或者通过在 C 扩展模块中故意构建一个类)并且效率稍低但确实支持方法和继承。在 20 世纪 90 年代初期,当快速的 386 是一台相当不错的机器时,这种妥协是有道理的。但是类型和类在 Python 2.2(2001 年发布)中是统一的,字符串也有方法,在最近的 Python 版本中,用户甚至可以从它们继承子类。
因此:Python 曾经肯定不那么面向对象;但是,据我所知,所有这些旧障碍现在都消失了。
这是发生的统一指南:
http://www.python.org/download/releases/2.2/descrintro/
澄清:也许我可以更简单地说:在 Python 中,一切始终都是对象;但是一些基本类型的对象(整数、字符串)曾经被“不同的规则”所使用,这些规则阻止了 OO 编程方法(如继承)与它们一起使用。现在已经修复了。此处另一个响应中描述的 len() 方法可能是我希望 Guido 在升级到 Python 3.0 时唯一改变的东西。但至少他给了我字典理解,所以我不会大声提示。 :-)
关于python - Python 变得更面向对象了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/894502/