详解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 12 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
Jan 22 Python
python操作mysql代码总结
Jun 01 Python
python框架中flask知识点总结
Aug 17 Python
如何使用python把ppt转换成pdf
Jun 29 Python
简单了解python 生成器 列表推导式 生成器表达式
Aug 22 Python
django中间键重定向实例方法
Nov 10 Python
Python超越函数积分运算以及绘图实现代码
Nov 20 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
Jun 04 Python
Python实现邮件发送的详细设置方法(遇到问题)
Jan 18 Python
python爬虫--selenium模块
Mar 31 Python
详解Python flask的前后端交互
Mar 31 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设计模式 Mediator (中介者模式)
2011/06/26 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
用javascript实现画板的代码
2007/09/05 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
2014/03/12 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
一个JavaScript防止表单重复提交的实例
2014/10/21 Javascript
JQuery中层次选择器用法实例详解
2015/05/18 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
js操作table元素实现表格行列新增、删除技巧总结
2015/11/18 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
详解Vue2.0里过滤器容易踩到的坑
2017/06/01 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
vue.js根据代码运行环境选择baseurl的方法
2018/02/28 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
JS实现打砖块游戏
2020/02/14 Javascript
Jupyter中直接显示Matplotlib的图形方法
2018/05/24 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
搞清楚 Python traceback的具体使用方法
2019/05/13 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
Django重设Admin密码过程解析
2020/02/10 Python
python代码实现将列表中重复元素之间的内容全部滤除
2020/05/22 Python
Django全局启用登陆验证login_required的方法
2020/06/02 Python
Python configparser模块应用过程解析
2020/08/14 Python
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
教师辞职报告范文
2014/01/20 职场文书
数学与统计学院学生个人职业生涯规划书
2014/02/10 职场文书
推广普通话标语
2014/06/27 职场文书
客户答谢会致辞
2015/01/20 职场文书
综合素质评价个性发展自我评价
2015/03/06 职场文书
行为规范主题班会
2015/08/13 职场文书
小学班主任研修日志
2015/11/13 职场文书