详解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 相关文章推荐
在Django中管理Users和Permissions以及Groups的方法
Jul 23 Python
Python实现身份证号码解析
Sep 01 Python
详解Swift中属性的声明与作用
Jun 30 Python
利用Python脚本实现ping百度和google的方法
Jan 24 Python
Selenium定时刷新网页的实现代码
Oct 31 Python
使用Python自动生成HTML的方法示例
Aug 06 Python
阿里云ECS服务器部署django的方法
Aug 29 Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 Python
python 函数嵌套及多函数共同运行知识点讲解
Mar 03 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
Jun 24 Python
C3 线性化算法与 MRO之Python中的多继承
Oct 05 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
DC宇宙的第一个英雄,堪称动漫史鼻祖,如今成为美国文化的象征
2020/04/09 欧美动漫
分页详解 从此分页无忧(PHP+mysql)
2007/11/23 PHP
优化PHP代码的53条建议
2008/03/27 PHP
php 不使用js实现页面跳转
2014/02/11 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
基于jQuery实现的水平和垂直居中的div窗口
2011/08/08 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
原生js实现日期联动
2015/01/12 Javascript
移动手机APP手指滑动切换图片特效附源码下载
2015/11/30 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
2020/08/14 Javascript
JavaScript canvas实现跟随鼠标移动小球
2021/02/09 Javascript
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Django的session中对于用户验证的支持
2015/07/23 Python
python中星号变量的几种特殊用法
2016/09/07 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
2018/04/22 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
Python字符串、列表、元组、字典、集合的补充实例详解
2019/12/20 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
Python ATM功能实现代码实例
2020/03/19 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
2020/06/11 Python
HTML5移动端开发遇见的东西
2019/10/11 HTML / CSS
会计专业推荐信
2013/10/29 职场文书
《理想的风筝》教学反思
2014/04/11 职场文书
优秀教师演讲稿
2014/05/06 职场文书
村创先争优活动总结
2014/08/28 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
推销搭讪开场白
2015/05/28 职场文书
员工安全责任协议书
2016/03/22 职场文书