金磊 发自 凹非寺
量子位 报道 | 公众号 QbitAI

Python3.9,「千呼万唤始出来」。

先来速看下此次发布版本的重点。

语法特性

  • PEP 584,为 dict 增加合并运算符。

  • PEP 585,标准多项集中的类型标注泛型。

  • PEP 614,放宽对装饰器的语法限制。

内置特性

  • PEP 616,移除前缀和后缀的字符串方法。

标准库中的特性

  • PEP 593,灵活的函数和变量标注。

  • 添加了 os.pidfd_open() ,允许不带竞争和信号的进程管理。

解释器方面的改进:

  • PEP 573,从 C 扩展类型的方法快速访问模块状态。

  • PEP 617,CPython 现在使用基于 PEG 的新解析器。

  • ……

库模块

  • PEP 615,IANA 时区数据库现在已包含于标准库的 zoneinfo 模块。

  • 图的拓扑排序实现现在已由新的 graphlib 模块提供。

为了更好地理解此次更新,Twitter上一位16岁少年Pratham Prasoon,还自制了一张「Python 3.9新特性必知图」

列出了他认为比较重要的八大新特性,广受网友好评。

字典合并与更新运算符

此次「字典的合并与更新运算符」的新特性,是Python3.9的一大亮点。

合并 (|) 与更新 (|=) 运算符已被加入内置的 dict 类,扩充了现有的 dict.update 和 {**d1, **d2} 字典合并方法。

在Prasoon提供的图中也展示了对应的示例,如下图所示:

新增用于移除前缀和后缀的字符串方法

在Python的官方文档,以及Prasoon的图表中,也着重展示了新的用于「移除前缀和后缀的字符串」方法。

str.removeprefix(prefix)和str.removesuffix(suffix)可以方便地从字符串中,移除不需要的前缀或后缀:

标准多项集中的类型标注泛型

类型标注方面,现在可以使用内置的多项集类型(例如 list 和 dict)作为通用类型,而不必再从 typing 导入对应的大写形式类型名。

__import__()特性修改

__import__() 现在会引发 ImportError 而不是 ValueError。

至于原因,在Python的官方文档中有相应的解释:后者曾经会在相对导入超出其最高层级包时发生。

新增的模块

在新增模块方面,zoneinfo模块为标准库引入了 IANA 时区数据库

这是一个基于系统时区数据的实体 datetime.tzinfo 实现,示例如下图所示。

改进的模块

除了新增的模块外,Python3.9还对原有的一些模块进行了改进。

Prasoon举出了他认为比较重要的一项——Random

名为random.Random.randbytes的方法,可以用于生成随机字节串,如下图所示。

此外,还有cancel_futures

Python3.9将新的 cancel_futures 形参,添加到 concurrent.futures.Executor.shutdown(),可以取消尚未开始运行的所有挂起的 Future,而不必等待它们完成运行再关闭执行器。

当然,除了这八大新特性外,Python官方文档也更为详细地列举了此次更新的内容。

感兴趣的读者可以戳文末链接做更深入的了解。

关于作者

Pratham Prasoon是一位16岁的印度高中生,对金融充满激情,对编程世界充满好奇,自称是一个科学怪才(science geek)。

作为一名编程人员,他认为自己是「工具不可知」类型选手,也就是说,没有特别唯一是使用的编程语言,而是会根据自己的目的而做出选择。

目前,他正在学习React、 Flask、Django和Tensorflow。

参考链接:

https://docs.python.org/zh-cn/3.9/whatsnew/3.9.html
https://twitter.com/PrasoonPratham/status/1313392420038483968

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

榜单征集!7大奖项锁定AI TOP企业

「2020中国人工智能年度评选」正式启幕!将从公司、人物、产品、社区四大维度共7个奖项寻找优秀的AI企业,欢迎大家扫码报名参与。

榜单将于12月揭晓,也期待与百万从业者们,共同见证这些优秀企业的荣誉!

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见~

关于Python3.9,看这张16岁高中生做的「新特性必知图」就够了相关推荐

  1. 关于 Python3.9,看这张 16 岁高中生做的「新特性必知图」就够了

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI Python3.9,「千呼万唤始出来」. 先来速看下此次发布版本的重点. 新语法特性: PEP 584,为 dict 增加合并运算符. PE ...

  2. 火了!16岁高中生做的 Python 3.9 八大新特性图

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI Python3.9,「千呼万唤始出来」. 先来速看下此次发布版本的重点. 新语法特性: PEP 584,为 dict 增加合并运算符. PE ...

  3. 苹果手机改linux,16 岁高中生把 iPhone7 改造成 Linux 服务器

    近日,国外一名 16 岁的开发者发布了一则视频,展示自己为一台已经无法正常使用的 iPhone 7 成功移植了 Ubuntu 20.04,并将其作为服务器来使用. 发布视频的开发者网名为 Daniel ...

  4. 16 岁高中生成功在 iPhone 7 上安装 Ubuntu 20.04 桌面!

    点击上方"逆锋起笔",公众号回复 编程资源 领取大佬们推荐的学习资料 往日回顾:视频下载神器,支持 80+ 网站,比迅雷还快!          正文    近日,国外一名 16 ...

  5. 16岁高中生的「卷」,用13000+行代码,从头写了一个C++机器学习库

    人工智能领域现在也流行高中生拯救世界了? >>>> 一个热爱计算机的少年,16 岁就已经可以做出点东西来了,比如开发个粤语编程语言.拿个 Kaggle 冠军.写个游戏.开发个加 ...

  6. 文言文编程还不够好玩?这里有个16岁高中生开发的粤语编程项目,GitHub star量600+...

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自:机器之心 粤语编程语言--The Cantonese Programming L ...

  7. 13000行代码、19大技术,这位16岁高中生用C++从头到尾构建了一个机器学习库!...

    作者 | 苏宓 出品 | CSDN(ID:CSDNnews) 你是从什么时候开始编程的? 据 CSDN 调研数万名开发者的数据显示,近六成的开发者表示自己写下第一行代码的年龄是在 16-20 岁间.其 ...

  8. 哈哈哈哈,16 岁高中生开发「粤语编程」项目,在 GitHub 火了!

    点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 每日英文 Everyone wants to escape sometime ...

  9. 文言文不好玩,16岁高中生开发粤语编程项目

    本文转载自程序员极客实验室 粤语编程语言--The Cantonese Programming Language.看来大家都是 C 语言啊. 最近十分搞笑的饮茶梗,刷新了大家对粤语的认知. 其实粤语一 ...

最新文章

  1. Python:Spider
  2. android_通过高级应用程序开发策略在Android中进行用户参与
  3. python批量读取csv文件-Python读取/批量读取文件
  4. Dart基础学习03--方法的使用
  5. lisp 角平分线_最佳VisualLISP及VBAforAutoCAD2000程序123例 张光斌.pdf
  6. Memcache存储大数据的问题
  7. 都2021年了,c/c++开发竟然还能继续吃香??
  8. 带集成保护的共模滤波器(CMF)行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  9. Eclipse搭建SSH环境实现Struts2分页显示mysql数据库表中内容
  10. Shell 脚本进程并发进程数控制
  11. elementui中下拉菜单需要传入多个参数的处理
  12. AdapterView详解
  13. win7家庭版计算机桌面,Win7 home basic家庭普通版显示桌面图标的方法
  14. UE 在场景或UMG中播放视频
  15. 分布式Redis集群解决方案
  16. Windows Sever 2008 本地安全策略之登陆策略
  17. 【读书札记】《北大授课》中华文化四十七讲 余秋雨
  18. Vue 开发的组件库
  19. JDK1.7ConcurrentHashMap源码分析
  20. java 如何抛异常_如何在Java中抛出异常?

热门文章

  1. mac composer 使用
  2. 1.2机器学习基础下--python深度机器学习
  3. 设置Mybatis(3.2.8)实体嵌套关系(一对多,多对多)遇到的问题及经验总结记录...
  4. 企业生产环境下不同业务的linux分区建议
  5. android 锁屏
  6. 正则 不区分大小写_4.nginx的server_name正则匹配
  7. python手机连续点击脚本_selenium+python自动化86-循环点击遇到的坑
  8. php jq ajax 4个下拉框联动案列,Ajax与Jquery结合数据库做出实现下拉框的二级联动...
  9. ftp 工具_ftp工具,ftp工具如何下载使用?Linux如何配置ftp服务器?
  10. 计算机网络双语名词,计算机网络中英文名词对照