Python 4.0 预计推出的新功能

论坛 期权论坛 期权     
Python编程   2019-7-14 05:31   4101   0
来自公众号:Python大咖谈
原文作者:Charles Leifer
原文链接:http://charlesleifer.com/blog/new-features-planned-for-python-4-0/
Python 3.8 发布在即,核心开发者团队让我总结一下最近讨论的 Python 4.0 预计推出的新功能,代码名为“ Ouroboros:自噬蛇”。Python 4.0 是大家翘首以盼的新版本,也将成为 Python 历史上的重大里程碑,在此感谢为之努力奋斗的 100 多名贡献者。
  • 经过邮件列表上的论战,PEP8 里的
    1. 一行 79 个字符
    复制代码
    的限制将增加至
    1. 一行 89.5 个字符
    复制代码
    。IDE 用户终于可以充分利用 30" 超宽 4K 显示器的优势啦!这是我们对每行 100 个字符这一呼声的妥协,大家各退一步。
  • 所有新的支持库与标准库模块的标题中必须包含
    1. For Humans
    复制代码
    (“以人为本”)。
  • Python 4.0 终将推出一种新的字符串类型,
    1. z-strings
    复制代码
    , 这是一种 C 语言风格的空终止字节字符串。只要在字符串加上前缀
    1. z
    复制代码
    ,如
    1. z'my string'
    复制代码
    ,Python 就会自动将它转换成空终止字符串(NULL-terminated)。注意:
    1. z-strings
    复制代码
    不能用于现有需要获取字符串参数的 API,应该先将它解码为 Unicode 字符串,或转换为字节(bytes)。
  • Type-hinting(类型提示)扩展将提供一些更实用的功能。新推出的简化版类型提示将被称为 Type Whispering(类型低语)。
  • 他码弟,我们要用 libuv[1]为 Twisted acyncio 提供事件循环(Event Loop)支持。
  • Python 4.0 将支持在单一关键词前使用
    1. async
    复制代码
    关键词,并且鼓励使用
    1. async do so
    复制代码
    这种方式。用 Cargo-Culting[2] 方式编程,让魔法关键词出现在所有地方也没什么不好,大家都希望程序能跑得更快,是不是?
  • 在 Python 3.7 版的
    1. namedtuple
    复制代码
    1. dataclasses
    复制代码
    基础上,Python 4.0 将增加几个千行
    1. Decorator-Hack
    复制代码
    ,用以实现简单构建类型。
  • 全局解释锁(GIL)已经被移除了。
  • 开玩笑的!反之,我们一直努力,希望实现在一个线程里,处理多个解释器数据结构更容易。别客气,以后再感谢我们吧!
  • 需要将
    1. bytes
    复制代码
    转为
    1. str
    复制代码
    这件事,让众多被我们说服从 Python 2.x 升级到 3.x 的公司为我们提供了不少工作机会。本着同样的精神,很高兴告诉大家,今后会有两个
    1. int
    复制代码
    类型,其中,
    1. int
    复制代码
    是 32 位带符号的整数,
    1. long
    复制代码
    是 64 位带符号的整数。可能会有人说 “Python 2 不就是这样吗?”,对于这点,我们要告诉大家,以后再也用不了
    1. int
    复制代码
    了,要把它们都转换为
    1. long
    复制代码

  • 鉴于,
    1. Python 2 升级 3
    复制代码
    的工具大获成功,我们计划推出
    1. Python 3 升级 4
    复制代码
    的工具,可以自动将代码转换为上述新特性。
很遗憾,以下特性未能入选 Python 4.0 升级计划:
  • 我们尝试过用 Rust 重写解释器的部分功能,但没人知道怎么禁用
    1. borrow-cheker
    复制代码
    ,所以只好放弃了。
  • 没有
    1. switch
    复制代码
    语句,不过,你可以用
    1. dict
    复制代码

    1. concurrent.Pasts
    复制代码
    (过去) 与
    1. concurrent.Present
    复制代码
    (现在)没有合并,不过,没关系,我们还有
    1. future
    复制代码
    (未来),是不是?
  • 没人能搞懂 Twisted asyncio 如何运作,届时,将不会对这方面的内容有所改进。Python 软件基金会建议所有新项目都使用
    1. gevent
    复制代码

  • 很抱歉,我们没有对打包“环境”做出任何改进。
我们十分期待新版发布,并会竭尽所能做好在它能用之前的几个小版本。
要有信心!记住 Python 的宣言:
唯有死亡,才会永生!
  • Libuv,跨平台异步 IO 支持库。
  • Cargo-Culting 编程,Cargo Cults 一词源于二战期间,美国军方将太平洋小岛当作补给站,在岛上修建飞机跑道运输物资。那里的土著人没见过飞机,以为飞机是神迹,会带来物品与食物,于是修建了飞机祭台。Cargo-Cult 编程则是指照搬编程高手的代码,只知其然,不知其所以然,但依然能搞定工作任务的一种编程方式。



●编号702,输入编号直达本文

●输入m获取文章目录
相关推荐↓↓↓
人工智能与大数据技术
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:145
帖子:29
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP