详解Python 4.0 预计推出的新功能


Posted in Python onJuly 26, 2019

Python 3.8 发布在即,核心开发者团队让我总结一下最近讨论的 Python 4.0 预计推出的新功能,代码名为“ Ouroboros:自噬蛇”。Python 4.0 是大家翘首以盼的新版本,也将成为 Python 历史上的重大里程碑,在此感谢为之努力奋斗的 100 多名贡献者。

经过邮件列表上的论战,PEP8 里的一行 79 个字符的限制将增加至一行 89.5 个字符。IDE 用户终于可以充分利用 30" 超宽 4K 显示器的优势啦!这是我们对每行 100 个字符这一呼声的妥协,大家各退一步。

所有新的支持库与标准库模块的标题中必须包含 For Humans(“以人为本”)。

Python 4.0 终将推出一种新的字符串类型,z-strings, 这是一种 C 语言风格的空终止字节字符串。只要在字符串加上前缀 z,如 z'my string',Python 就会自动将它转换成空终止字符串(NULL-terminated)。注意:z-strings 不能用于现有需要获取字符串参数的 API,应该先将它解码为 Unicode 字符串,或转换为字节(bytes)。

Type-hinting(类型提示)扩展将提供一些更实用的功能。新推出的简化版类型提示将被称为 Type Whispering(类型低语)。

他码弟,我们要用 libuv[1]为 Twisted acyncio 提供事件循环(Event Loop)支持。

Python 4.0 将支持在单一关键词前使用 async 关键词,并且鼓励使用 async do so 这种方式。用 Cargo-Culting[2] 方式编程,让魔法关键词出现在所有地方也没什么不好,大家都希望程序能跑得更快,是不是?

在 Python 3.7 版的 namedtuple 与 dataclasses 基础上,Python 4.0 将增加几个千行 Decorator-Hack,用以实现简单构建类型。

全局解释锁(GIL)已经被移除了。

开玩笑的!反之,我们一直努力,希望实现在一个线程里,处理多个解释器数据结构更容易。别客气,以后再感谢我们吧!

需要将 bytes 转为 str这件事,让众多被我们说服从 Python 2.x 升级到 3.x 的公司为我们提供了不少工作机会。本着同样的精神,很高兴告诉大家,今后会有两个 int 类型,其中,int 是 32 位带符号的整数,long 是 64 位带符号的整数。可能会有人说 “Python 2 不就是这样吗?”,对于这点,我们要告诉大家,以后再也用不了 int 了,要把它们都转换为 long。

鉴于,Python 2 升级 3 的工具大获成功,我们计划推出 Python 3 升级 4 的工具,可以自动将代码转换为上述新特性。

很遗憾,以下特性未能入选 Python 4.0 升级计划:

我们尝试过用 Rust 重写解释器的部分功能,但没人知道怎么禁用 borrow-cheker,所以只好放弃了。

没有switch 语句,不过,你可以用 dict。

concurrent.Pasts(过去) 与concurrent.Present(现在)没有合并,不过,没关系,我们还有 future(未来),是不是?

没人能搞懂 Twisted asyncio 如何运作,届时,将不会对这方面的内容有所改进。Python 软件基金会建议所有新项目都使用 gevent。

很抱歉,我们没有对打包“环境”做出任何改进。

我们十分期待新版发布,并会竭尽所能做好在它能用之前的几个小版本。

要有信心!记住 Python 的宣言:

唯有死亡,才会永生!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python Web框架Flask中使用新浪SAE云存储实例
Feb 08 Python
python获取当前日期和时间的方法
Apr 30 Python
详解python列表生成式和列表生成式器区别
Mar 27 Python
Django框架实现的普通登录案例【使用POST方法】
May 15 Python
python super的使用方法及实例详解
Sep 25 Python
使用Fabric自动化部署Django项目的实现
Sep 27 Python
python实现多进程按序号批量修改文件名的方法示例
Dec 30 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
Apr 07 Python
基于python实现计算两组数据P值
Jul 10 Python
举例讲解Python装饰器
Dec 24 Python
python爬虫线程池案例详解(梨视频短视频爬取)
Feb 20 Python
python opencv将多个图放在一个窗口的实例详解
Feb 28 Python
python mysql断开重连的实现方法
Jul 26 #Python
seek引发的python文件读写的问题及解决
Jul 26 #Python
python经典趣味24点游戏程序设计
Jul 26 #Python
对django后台admin下拉框进行过滤的实例
Jul 26 #Python
python函数的万能参数传参详解
Jul 26 #Python
Python企业编码生成系统之主程序模块设计详解
Jul 26 #Python
Django REST Framework序列化外键获取外键的值方法
Jul 26 #Python
You might like
phpBB BBcode处理的漏洞
2006/10/09 PHP
PHP中array_merge和array相加的区别分析
2013/06/17 PHP
php判断手机访问还是电脑访问示例分享
2014/01/20 PHP
ThinkPHP分页实例
2014/10/15 PHP
CI框架中数据库操作函数$this->db->where()相关用法总结
2016/05/17 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
JavaScript 利用Cookie记录用户登录信息
2009/12/08 Javascript
优化innerHTML操作(提高代码执行效率)
2011/08/20 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
jQuery Raty 一款不错的星级评分插件
2016/08/24 Javascript
详解vue 配合vue-resource调用接口获取数据
2017/06/22 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
详解VUE项目中安装和使用vant组件
2019/04/28 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
vue.js实现只能输入数字的输入框
2019/10/19 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
[02:04]2014DOTA2国际邀请赛 BBC小组赛第三天总结
2014/07/12 DOTA
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
Python的string模块中的Template类字符串模板用法
2016/06/27 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
Python中itertools的用法详解
2020/02/07 Python
通过Python实现一个简单的html页面
2020/05/16 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
2018/12/29 HTML / CSS
瑞士香水购物网站:Parfumcity.ch
2017/01/14 全球购物
复古斯堪的纳维亚儿童服装:Baby go Retro
2017/09/09 全球购物
经理秘书找工作求职信
2013/12/19 职场文书
满月酒答谢词
2014/01/14 职场文书
大二学生学习个人自我评价
2014/01/19 职场文书
2014年父亲节活动方案
2014/03/06 职场文书
MySQL 数据丢失排查案例
2021/05/08 MySQL
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js