为什么Python 3(或更高版本)比Python 2更好?
大约十年前,我开始学习Python,这也是我第一个认真学的编程语言(不是BASIC)。从那以后,我学了很多其他语言,但我还是习惯用Python思考。当我看到更新的变化列表时,我并没有发现有什么是我特别需要的新功能。我通常会想,嗯,这样做确实不错,但为什么现在要改呢?
像改变默认的地板除法(floor division)这样的事情,对于大型项目来说,可能会带来很大的麻烦。感觉那些主要的开发者们都在拖延。那么,有什么关键的功能能让我愿意去学习新的东西呢?
4 个回答
1
像改变默认的地板除法这种事情,对于大型项目来说,可能会非常麻烦。
如果你在8年前,也就是Python 2.2推出的时候,就开始做这个改变,使用了//
和from __future__ import division
,那么现在就不会觉得麻烦了。就我个人而言,我很高兴终于可以摆脱旧式的除法了!
我最喜欢的Python 3.x的第二个功能是str
和bytes
的区分。除了让Unicode支持变得更简单,bytes
在处理数据库的BLOB
时,比buffer
方便多了。
3
关于这个话题,有个很不错的讨论可以在Python的维基上找到;我应该在开发中使用Python 2还是Python 3?
10
作为一个重要的特点,很多人对(据说)透明的Unicode支持感到非常兴奋。他们把原来的str
(8位字符数组/默认字符串类型)和unicode
(Unicode字符串)改成了str
(默认的(兼容Unicode的)字符串)和bytes
(作为8位“字符串”的二进制数据)。
(我觉得把字节列表和字符串分开是个好主意,但我也不喜欢Unicode,所以对我个人来说,这可能反而更糟。)