51Testing软件测试论坛

标题: Python版本的发展 [打印本页]

作者: 测试积点老人    时间: 2019-1-10 16:08
标题: Python版本的发展

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


Python2.x和Python3.x之间的区别:

    1. 函数的改变,例如print;


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


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


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


    5. Pyhton3.x使用text和(binary)data代替之前版中的unicode和8位的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,当x和y类型不匹配时抛出TypeError而不是返回随即的 bool值。


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


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


    14. 异常的改变


    15. 模块变动
    1)移除了cPickle模块,可以使用pickle模块代替。最终我们将会有一个透明高效的模块。
    2)移除了imageop模块
    3)移除了 audiodev, Bastion, bsddb185, exceptions, linuxaudiodev, md5, MimeWriter, mimify, popen2,     rexec, sets, sha, stringold, strop, sunaudiodev, timing和xmllib模块
    4)移除了bsddb模块(单独发布,可以从http://www.jcea.es/programacion/pybsddb.htm获取)
    5)移除了new模块
    6)os.tmpnam()和os.tmpfile()函数被移动到tmpfile模块下
    7)tokenize模块现在使用bytes工作。主要的入口点不再是generate_tokens,而是 tokenize.tokenize()

以上只是列举了Python2.x和Python3.x之间的部分改变,还有很多未列出。总体上来说,做的改动非常大,但是我们可以通过2to3将Python2.x的代码转换成Python3.x。
Python3.x运行 pystone benchmark的速度比Python2.x慢30%。Guido认为Python3.x有极大的优化空间,在字符串和整形操作上可以取得很好的优化结果。


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



作者: Miss_love    时间: 2021-1-5 13:37
支持分享




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2