详解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实现dnspod自动更新dns解析的方法
Feb 14 Python
跟老齐学Python之编写类之一创建实例
Oct 11 Python
Python脚本实现集群检测和管理功能
Mar 06 Python
在IIS服务器上以CGI方式运行Python脚本的教程
Apr 25 Python
详解Python中的__new__、__init__、__call__三个特殊方法
Jun 02 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
Jul 25 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
利用Python yagmail三行代码实现发送邮件
May 11 Python
python 实现语音聊天机器人的示例代码
Dec 02 Python
python3中property使用方法详解
Apr 23 Python
python中Django文件上传方法详解
Aug 05 Python
Python爬取某拍短视频
Jun 11 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 array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
PHP企业级应用之常见缓存技术篇
2011/01/27 PHP
php curl模拟post请求小实例
2013/11/13 PHP
PHP实现的观察者模式实例
2017/06/21 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
利用Ext Js生成动态树实例代码
2008/09/08 Javascript
javascript 兼容鼠标滚轮事件
2009/04/07 Javascript
jQuery的强大选择器小结
2009/12/27 Javascript
将string解析为json的几种方式小结
2010/11/11 Javascript
IE 当eval遇上function的处理
2011/08/09 Javascript
js querySelector和getElementById通过id获取元素的区别
2012/04/20 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
jQuery验证插件 Validate详解
2014/11/20 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
2015/11/16 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
微信小程序利用co处理异步流程的方法教程
2017/05/20 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
浅谈js中的this问题
2017/08/31 Javascript
浅谈JavaScript的innerWidth与innerHeight
2017/10/12 Javascript
Vue弹出菜单功能的实现代码
2018/09/12 Javascript
vue prop属性传值与传引用示例
2019/11/13 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
2019/11/27 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
不可错过的十本Python好书
2017/07/06 Python
python程序 创建多线程过程详解
2019/09/23 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
python自定义函数def的应用详解
2020/06/03 Python
使用python-cv2实现视频的分解与合成的示例代码
2020/10/26 Python
欧洲最大的化妆品连锁公司:Douglas道格拉斯
2017/05/06 全球购物
单位工作证明范本
2015/06/15 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书