详解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判断一个集合是否包含了另外一个集合中所有项的方法
Jun 30 Python
python实现在字符串中查找子字符串的方法
Jul 11 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
Jul 04 Python
Python对字符串实现去重操作的方法示例
Aug 11 Python
python中kmeans聚类实现代码
Feb 23 Python
python3 打开外部程序及关闭的示例
Nov 06 Python
详解python中的index函数用法
Aug 06 Python
django之自定义软删除Model的方法
Aug 14 Python
Python通过递归获取目录下指定文件代码实例
Nov 07 Python
django商品分类及商品数据建模实例详解
Jan 03 Python
Python 如何查找特定类型文件
Aug 17 Python
python3实现无权最短路径的方法
May 12 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
PHP中判断变量为空的几种方法分享
2013/08/26 PHP
PHP读书笔记_运算符详解
2016/07/01 PHP
Yii CGridView用法实例详解
2016/07/12 PHP
Laravel5权限管理方法详解
2016/07/26 PHP
php框架CodeIgniter主从数据库配置方法分析
2018/05/25 PHP
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
javascript之AJAX框架使用说明
2010/04/24 Javascript
Javascript下IE与Firefox下的差异兼容写法总结
2010/06/18 Javascript
仿微博字符限制效果实现代码
2012/04/20 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
原生JS实现多个小球碰撞反弹效果示例
2018/01/31 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
2018/07/23 Javascript
vue项目前端埋点的实现
2019/03/06 Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
2019/11/05 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
python如何读写csv数据
2018/03/21 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
python torch.utils.data.DataLoader使用方法
2020/04/02 Python
python模拟斗地主发牌
2020/04/22 Python
Python matplotlib实时画图案例
2020/04/23 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
Lampegiganten丹麦:欧洲领先的照明网上商店
2018/04/25 全球购物
C# Debug和Testing相关面试题
2015/10/25 面试题
军训的自我鉴定
2013/12/10 职场文书
个人廉洁自律承诺书
2014/03/27 职场文书
故意伤害辩护词
2015/05/21 职场文书