详解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在windows下实现备份程序实例
Jul 04 Python
Python中实现三目运算的方法
Jun 21 Python
python里使用正则的findall函数的实例详解
Oct 19 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
Apr 02 Python
Django Web开发中django-debug-toolbar的配置以及使用
May 06 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
Jul 06 Python
python pytest进阶之fixture详解
Jun 27 Python
pycharm运行scrapy过程图解
Nov 22 Python
Django model重写save方法及update踩坑详解
Jul 27 Python
python爬虫分布式获取数据的实例方法
Nov 26 Python
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
Mar 29 Python
python numpy中setdiff1d的用法说明
Apr 22 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中HTTP_REFERER函数用法实例
2014/11/21 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
百度地图api如何使用
2015/08/03 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
javascript下使用Promise封装FileReader
2016/02/19 Javascript
微信js-sdk上传与下载图片接口用法示例
2016/10/12 Javascript
Rollup处理并打包JS文件项目实例代码
2018/05/31 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
基于python编写的微博应用
2014/10/17 Python
Python装饰器的函数式编程详解
2015/02/27 Python
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
对Pycharm创建py文件时自定义头部模板的方法详解
2019/02/12 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
通过HTML5规范搞定i、em、b、strong元素的区别
2017/03/04 HTML / CSS
写给女朋友的道歉信
2014/01/12 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
小学生读书活动总结
2014/06/30 职场文书
文秘应届生求职信
2014/07/05 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
行风评议整改报告
2014/11/06 职场文书
周一给客户的问候语
2015/11/10 职场文书
Python面向对象编程之类的概念
2021/11/01 Python
python脚本框架webpy的url映射详解
2021/11/20 Python
SpringBoot2零基础到精通之数据与页面响应
2022/03/22 Java/Android