Python版本的发展

Python版本的发展

Python2.72.x的最后一个版本,为了能够移植到python3.xpython3.x中有些新特性也被包含在2.7里了。

Python的管理者把他们对Python新特性发展的注意力转移到了Python3.x系列上了。这意味着拍Python2系列除了会得到bug的修复和更新对于新的硬件和操作系统的版本的支持之外,不会再有对于语言和标准库的全新特征版本的发布。作者最初开发Python3的目的就是去除之前的Python版本中的出现的主要缺点并删除一些比较繁琐的东西。对标准库所做的最新的改进都只作用于Python3.x

Python2.xPython3.x之间的区别:
    1. 函数的改变,例如print

    2. 很多API返回类型的改变,例如:dictdict.keys()dict.items()  dict.values() 返回“views”不在返回”lists”

    3. 部分函数的参数的改变和部分函数的删除,例如:builtin.sorted()不再接受cmp参数,__cmp__()已经不存在;

    4. 变量类型的改变,例如:long在新版本中已经不存在,新版本中只有int

    5. Pyhton3.x使用text(binary)data代替之前版中的unicode8位的strings

    6. 语法的改变,例如as,with变成了保留字,新的Metaclass语法等

    7. 语法的删除,例如:

1)去除了<>,全部改用!=

2)去除``,全部改用repr()

3)关键词加入as with,还有True,False,None

4)加入nonlocal语句。使用noclocal x可以直接指派外围(非全局)变量

5)去除print语句,加入print()函数实现相同的功能。同样的还有 exec语句,已经改为exec()函数

    8. 标准库的改变,很多老的模块已经删除,例如:gopherlib,md5;部分模块的名字已经改变

    9. 异常的改变,例如:StandardError已经删除等

    10. 操作符和特殊方法的改变,例如:__getslice__(),__setslice__(),__delslice__()等已经删除

    11. 改变了顺序操作符的行为,例如x<y,当xy类型不匹配时抛出TypeError而不是返回随即的 bool值。

    12. 输入函数改变了,删除了raw_input,用input代替:

       Python2.X:  guess = int(raw_input('Enter an integer : ')) # 读取键盘输入的方法

       Python3.X:  guess = int(input('Enter an integer : '))

    13. 扩展的可迭代解包。在Py3.X 里,a, b, *rest = seq *rest, a = seq都是合法的,只要求两点:restlist 对象和seq是可迭代的。

    14. 异常的改变

    1)所以异常都从 BaseException继承,并删除了StardardError

    2)去除了异常类的序列行为和.message属性

    3)用 raise Exception(args)代替 raise Exception, args语法

    15. 模块变动

    1)移除了cPickle模块,可以使用pickle模块代替。最终我们将会有一个透明高效的模块。

    2)移除了imageop模块

    3)移除了 audiodev, Bastion, bsddb185, exceptions, linuxaudiodev, md5, MimeWriter, mimify, popen2,     rexec, sets, sha, stringold, strop, sunaudiodev, timingxmllib模块

    4)移除了bsddb模块(单独发布,可以从http://www.jcea.es/programacion/pybsddb.htm获取)

    5)移除了new模块

    6os.tmpnam()os.tmpfile()函数被移动到tmpfile模块下

    7tokenize模块现在使用bytes工作。主要的入口点不再是generate_tokens,而是 tokenize.tokenize()

以上只是列举了Python2.xPython3.x之间的部分改变,还有很多未列出。总体上来说,做的改动非常大,但是我们可以通过2to3Python2.x的代码转换成Python3.x

Python3.x运行 pystone benchmark的速度比Python2.x30%Guido认为Python3.x有极大的优化空间,在字符串和整形操作上可以取得很好的优化结果。

 

Python3.x的个版本之间的主要更新:

通过查看Python3.x各版本的更新,可以看出更新主要集中在如下几个方面:

    1. 语法特征的增加

    2. 新的库模块的增加

    3. 新的内建特性

    4. 函数实现的改进和优化

    5. 库模块性能的提升,库模块的增加和删除

    6. C API的改变

    7. 安全性的改进

    8. CPython性能的改进


你可能感兴趣的:(python,python2.x,Python3.x,Python的发展)