【问题标题】:Python -- what is NOT in 2.7 that IS in 3.1? So many things have been back-ported, what is NOT?Python——2.7 中没有的东西是 3.1 中的什么?很多东西都被向后移植了,什么不是?
【发布时间】:2011-02-03 19:42:42
【问题描述】:

我一直在关注 Python 3.x 的传奇,并看到 3.x 的功能逐渐向后移植到 2.x 行。

我使用的大多数库都没有被移植,有些库(例如 Twisted)似乎在不同程度上暗中或公开地对 3.x 怀有敌意。无论如何,其中许多的兼容版本几乎没有进展。尤其是较大的。

所以,我的问题是,对于所有已向后移植的功能,3.x 中仍有哪些未向后移植的功能?很容易找到向后移植的内容,而不是剩下的内容

现在,移植到 3.x 似乎很痛苦,我看不到收益;也许“仅在 3.x 中”列表会让我看到光明...

谢谢,

学习

【问题讨论】:

  • from __future__ import ???导入的那些特征你算吗?
  • 听起来你真的很想知道为什么要移植到 Python3。这已经回答了很多次了。
  • 不,我实际上是想找出 Python 3 中哪些内容没有被反向移植。
  • 实现向后移植的特性(可能是最有趣的特性)并不一定比直接迁移到 Python 3 更痛苦:例如 from future import unicode_literals 将在许多 Python 2 中造成严重破坏应用程序。

标签: python python-3.x python-2.7


【解决方案1】:

最重要的可能是始终使用 unicode。所以没有必要再摆弄 str/unicode。当您想到操作系统交互时,这听起来很小,但具有巨大(积极)的影响 - 例如,每个人都必须努力为您提供“可用”字符串而不是“可能是错误消息的二进制事物”。

解释器本身也有很多改进的地方。一个例子是全局解释器锁 (GIL),它并没有消失,但在 py3k 中效果更好:presentation+slides

【讨论】:

  • 3.3 改进了 unicode 实现。仅在当前 3.x 中还有其他 unicode 改进和错误修复。
【解决方案2】:

速度可能是一个值得一提的特性。

“Unladen Swallow”项目的速度改进已获准合并到 Python 中。但据我所知,仅适用于 Python 3。有关详细信息,请参阅 PEP 3146

【讨论】:

  • AFAIK,由于严格的内存要求和较长的启动时间,美国目前还不是入门者,但我确信这会解决(也许像许多人建议的那样进行预分析) .
  • 如果您所说的“非初学者”是指“pre-alpha”,那么,是的。 Unladen Swallow 已获准与 CPython 集成,一旦相关工作完成,就没有重大障碍。
  • 开发者社区似乎没有太大的热情来跟进 Unladen Swallow for Python 3。也许他们依赖于 Google 对这项工作的支持,但从邮件列表看来Google 已将这些开发人员转移到其他对 Google 来说优先级更高的工作。
  • “速度改进”更多的是假设性而非真实性,因此该项目已死。 Pypy 更加成功。
猜你喜欢
  • 2011-07-12
  • 1970-01-01
  • 1970-01-01
  • 2011-07-25
  • 1970-01-01
  • 2013-08-12
  • 2017-08-10
  • 2019-11-24
  • 2012-10-24
相关资源
最近更新 更多