详解Python 4.0 预计推出的新功能
Python3.8发布在即,核心开发者团队让我总结一下最近讨论的Python4.0预计推出的新功能,代码名为“Ouroboros:自噬蛇”。Python4.0是大家翘首以盼的新版本,也将成为Python历史上的重大里程碑,在此感谢为之努力奋斗的100多名贡献者。
经过邮件列表上的论战,PEP8里的一行79个字符的限制将增加至一行89.5个字符。IDE用户终于可以充分利用30"超宽4K显示器的优势啦!这是我们对每行100个字符这一呼声的妥协,大家各退一步。
所有新的支持库与标准库模块的标题中必须包含ForHumans(“以人为本”)。
Python4.0终将推出一种新的字符串类型,z-strings,这是一种C语言风格的空终止字节字符串。只要在字符串加上前缀z,如z'mystring',Python就会自动将它转换成空终止字符串(NULL-terminated)。注意:z-strings不能用于现有需要获取字符串参数的API,应该先将它解码为Unicode字符串,或转换为字节(bytes)。
Type-hinting(类型提示)扩展将提供一些更实用的功能。新推出的简化版类型提示将被称为TypeWhispering(类型低语)。
他码弟,我们要用libuv[1]为Twistedacyncio提供事件循环(EventLoop)支持。
Python4.0将支持在单一关键词前使用async关键词,并且鼓励使用asyncdoso这种方式。用Cargo-Culting[2]方式编程,让魔法关键词出现在所有地方也没什么不好,大家都希望程序能跑得更快,是不是?
在Python3.7版的namedtuple与dataclasses基础上,Python4.0将增加几个千行Decorator-Hack,用以实现简单构建类型。
全局解释锁(GIL)已经被移除了。
开玩笑的!反之,我们一直努力,希望实现在一个线程里,处理多个解释器数据结构更容易。别客气,以后再感谢我们吧!
需要将bytes转为str这件事,让众多被我们说服从Python2.x升级到3.x的公司为我们提供了不少工作机会。本着同样的精神,很高兴告诉大家,今后会有两个int类型,其中,int是32位带符号的整数,long是64位带符号的整数。可能会有人说“Python2不就是这样吗?”,对于这点,我们要告诉大家,以后再也用不了int了,要把它们都转换为long。
鉴于,Python2升级3的工具大获成功,我们计划推出Python3升级4的工具,可以自动将代码转换为上述新特性。
很遗憾,以下特性未能入选Python4.0升级计划:
我们尝试过用Rust重写解释器的部分功能,但没人知道怎么禁用borrow-cheker,所以只好放弃了。
没有switch语句,不过,你可以用dict。
concurrent.Pasts(过去)与concurrent.Present(现在)没有合并,不过,没关系,我们还有future(未来),是不是?
没人能搞懂Twistedasyncio如何运作,届时,将不会对这方面的内容有所改进。Python软件基金会建议所有新项目都使用gevent。
很抱歉,我们没有对打包“环境”做出任何改进。
我们十分期待新版发布,并会竭尽所能做好在它能用之前的几个小版本。
要有信心!记住Python的宣言:
唯有死亡,才会永生!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。