Ruby与Python:哪个更容易管理不同的语言版本?

2 投票
5 回答
556 浏览
提问于 2025-04-16 20:24

我听说最近的Python版本(3.x?)有一些问题,这导致大家不太愿意去使用它。这是真的吗?如果是真的,不同的人用不同版本的Python会不会造成问题?现在哪个版本的Python使用得最广泛呢?

Ruby有没有类似的问题,还是大多数人都已经切换到1.9版本了呢?

请注意,这个问题并不是在比较两者,而是专门针对这个具体的问题。

5 个回答

1

来自Python的维基关于选择合适的Python版本的内容:

简单来说:Python 2.x 是现在的主流,Python 3.x 是全新的选择。

Python 3.x 并不是完全和 2.x 不兼容。只是某些方面不兼容,而这些方面恰好是比较重要的。Python 3 的设计目的是为了修正一些早期版本(从 Python 1.x 开始)存在的核心架构问题。尽管如此,几乎所有的语法变化都已经被移植到了 Python 2.6.x 及之后的版本中。

以下是 Python 3 的一些主要区别,虽然这不是一个全面的列表:

  • print 现在是一个函数,而不是一个语句。这意味着你可以用 print() 来扩展它并传入参数。在 Python 2.6.x 中,你可以通过 from __future__ import print_function 来使用它。在 Python 2.7 中,两种方式都可以用(语句:print 'hi',函数:print('hi'))。
  • 异常处理现在需要使用 except Foo as foo_err 的语法。(之前的 except Foo, foo_err 语法在捕获多个异常时容易引起混淆,因为它用逗号分隔来给变量赋值。)Python 2.6 及以上版本都支持这两种格式。
  • 所有类默认都继承自 object,创建新类时不再需要显式地继承 object。有关更多信息,请参见(Python的旧式类与新式类)。

Python 3.x 被广泛采用的一个核心问题就是这些重大变化。许多生产环境仍在使用 Python 2,直到 Python 3 有广泛的第三方库支持,采用速度会比较慢。

如果你刚开始学习 Python,建议尝试最新的版本。目前是 3.2。如果发现所需的库支持不足,可以退回到 Python 2.7.2,并鼓励库的维护者移植到 Python 3!

Python 2.7 将会存在很长时间,它是 Python 2.x 的最后一个主要版本。这给我们提供了充足的时间来适应 Python 3,因为所有主要的语法变化已经默认包含在内。

3

问题不在于Python 3.x本身,而是从2.x到3.x的过渡没有一个合理的方案,这让很多人选择继续使用2.x。

这确实是一个严重的错误,但也只是个别情况:除此之外,Python的更新过程非常简单明了。

1

关于Python,大多数人现在都在使用2系列的最新版本。一般来说,Python在不同版本之间混用可能会让人感到头疼(至少以前是这样的),不过解决办法很简单,就是把你的软件和它所依赖的整个Python环境一起打包交付。

撰写回答