设为首页 收藏本站
查看: 798|回复: 0

[经验分享] Python 3.0 beta 1 变化大,更简洁、更统一

[复制链接]

尚未签到

发表于 2017-5-7 08:24:12 | 显示全部楼层 |阅读模式
Python 3.0 beta 1 变化大,更简洁、更统一

本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除作者信息。Python 3.0 beta 1 在跳票了很短的一段时间后,在 6 月 18 号发布了,其实北京时间应该是 19 号了(下载:http://www.python.org/download/releases/3.0/)。因为是第一个 beta 版本,所以从 what’s new 上可以看出做了很多更改,跟之前的 alpha 版本有较大的不同。最大的特点在于完全依照了更简洁、更统一的精神,修正了许多原有版本中遗留下来的缺陷。
win9x 算是走到了尽头了,py3.0 b1 已经去除了 winsound 模块对 win9x 的支持。除此之外,b1 版本修正了几十个 bugs。另外,值得一提的是生成器有了 gen.__name__ 属性,就像函数的 func.__name__ 属性一样,enumerate() 多了一个 start 参考,显然,这有一定的需要。
beta 1 的特色之一是许多标准模块以包的形式组织:比如 urllib 包,它包括了原来 urllib、urllib2、urlparse、robotparse等模块的内容;另外是多了一个 http 包,原来的 httplib 变成了 http.client,Cookie 变成 http.cookies,cookieslib变成了 http.cookiejar,而 HTTPServer 就成了 http.server;还多了 xmlrpc 包,包括了原来的 xmlrpclib 等模块;之前类似的 dbm、gdbm、dbhash等全部放入了新建立的 dbm 包里面。怎么样,看起来是 pythonic 多了吧?之前的标准库实在太乱了,全部乱乱地放在 libs 下,这样整理一下非常有必要。
还有许多原来 python 版本和 C 版本库,如 cStringIO 和 StringIO、pickle 和 cPickle、profile 与 cProfile 等都统一用 C 版本了,但保留了原来 python 版本的模块名,如 pickle。这种整理也非常必要,许多初学者不知道用哪个版本的好,许多模块功能一样的,没有必要给用户太多选择,给最好的就行了。
最后是 Queue 改名为 queue,ConfigParser 改名为 configparser,copy_reg 改名为 copyreg,_winreg 改名为 winreg。threading 模块的 API 也变得更另 pythonic了,可以预见 python 3.0 写出来的代码风格会更加统一,可读性会更好。
直接去除了模块也非常多。比如处理 email 的 rfc822、mimetools;还有 htmllib 和 sgmllib。commands、multifile、sre、mhlib、fpformat、dircache、Canvas、user 和 mutex 等模块都被删除啦,不过其中有些库我都很少用到。还有跟 import 有关的 ihooks 和 imputil 模块也被删除了,呜呜,我有代码是用 imputil 的呀,还是改用 imp 好了,终究标准模块保险啊。
implement PEP 3138. repr() now returns printable Unicode characters unescaped, to get an ASCII-only representation of an object use ascii().Implement PEP 3121: new module initialization and finalization API.这是最新的两个 PEP 实现,基本上无需要关注,当透明就好了。
对比前面几个 alpha 版本,可以发现一些基础设施如 bytes、int 和一些跟 unicode 有关的部分已经渐渐稳定下来,对于像itertools 中的 izip()、imap()替代 builtin 的 zip、map等语言特色的东西都已经完成,可以说核心进度颇佳。估计 beta 版本更多的是重新整理库的组织形式、修 bug 和优化了。对于 py3.0,我觉得精彩可期啊!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-374006-1-1.html 上篇帖子: 将 kjd.sgf (围棋定式)转换为 sql 语句的 python 源码 下篇帖子: Python:将句子中的单词全部倒排过来,但单词的字母顺序不变
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表