Python 3.10 明年发布,看看都有哪些新特性?
我们目前生活在Python 3.8的稳定时代,上周发布了Python的最新稳定版本3.8.4。Python 3.9已经处于其开发的beta阶段,并且2020年7月3日预发布了beta版本(3.9.0b4),第五版beta预定于明天发布。3.9的第一个稳定版本预计将在2020年10月发布。Python3.10的开发也将于2020年5月开始,并且第一个beta版本预计在2021年5月开始。
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:101677771
对于Python爱好者来说,显然,有趣的时代即将到来。浏览三个版本(3.8、3.9和3.10)的发布时间表,敦促我在即将到来的有趣的Python开发时间表中编制关键日期。
"我妈妈总是说生活就像一盒巧克力。你永远都不知道会得到什么。" - 阿甘

通常,在开发周期中会有4–5个beta版本,并且在第一个beta版本之后的版本中不会引入任何新功能。对于3.8,beta-1已于2019年6月发布;对于3.9,beta-1已于2020年5月发布。尽管未来的Python 3.10刚刚启动,但官方网站已经在其一些亮点中进行了简要介绍。
这篇文章旨在简要介绍时间轴,并预览即将发布的新Python版本的主要功能,以改编Python网站上的官方示例。请注意,我们可能会在3.10版中看到更多新功能,并且随着时间的推移,我将继续更新以下列表。
突出显示Python 3.10中的功能
(1) 二进制表示中的频率为1
将引入一个新的方法bit_count(),该方法将返回整数的二进制表示形式中存在的个数。结果将独立于整数的符号。此功能的一个用例是在信息论中,其中对于两个等长的字符串,您可以找到两个字符串不同的位置的总数。这种差异称为汉明距离(参见Wiki)。在此处阅读有关Python中此功能的历史记录。
在后台,此方法仅调用strtype asstr.count('1')的count方法。以下示例对此进行了说明:
# Positive integer
>> > num = 108
# Let's first get the binary representation of num
>> > bin(num)
'0b1101100'
>> > num.bit_count()
4
# Negative integer
>> > num = -108
>> > bin(num)
'-0b1101100'
>> > num.bit_count()
4
# Under the hood
>>
> bin(num).count(
'1'
)
(2) 压缩将是"严格的"
新的可选关键字参数strict将添加到zip函数中。如果passstrict = True,则压缩的可迭代项的长度必须相等,否则将引发ValueError。在Python 3.9之前,如果要压缩两个不等长的列表,则将得到长度等于较小列表的输出。
如以下示例所示,在Python 3.10之前,zip()函数忽略了第一个列表中不匹配的'D'。相比之下,Python 3.10将引发ValueError。鉴于压缩相同数量项目的直观性,我喜欢此功能,因为它唤醒您重新检查您的输入。在PEP 618上了解有关此问题的更多信息。
在Python 3.10之前:
>> > list(zip([ 'A' , 'B' , 'C' , 'D' ], [ 'Apple' , 'Ball' , 'Cat' ]))
[( 'A' , 'Apple' ), ( 'B' , 'Ball' ), ( 'C'
,
'Cat'
)]
在Python 3.10中:
>>> list (zip([ 'A' , 'B' , 'C' , 'D' ], [ 'Apple' , 'Ball' , 'Cat' ], strict=True))
Traceback (most recent call last ): ...ValueError: zip() argument 1 is
longer than
argument
2
(3) 字典的只读视图
字典的三个键方法keys(),values()和items()返回类似于集合的对象,这些对象分别对应于字典的键,值和项目的动态视图。您在这两个视图中所做的任何更改也将反映在原始词典中。
在Python 3.10中,从以上三种方法返回的所有视图都将具有一个称为mapping的附加属性,该属性将返回该映射的只读代理。该只读代理将包装视图引用的原始字典。以下示例对此进行了说明:
让我们定义一个字典并将其键和值存储在单独的变量中:
>> > fruits = { 'Mangos' : 12, 'Figs' : 100, 'Guavas' : 3, 'Kiwis' : 70}
>> > keys = fruits.keys()
>> > values = fruits.values()
>> > list(keys)
[ 'Mangos' , 'Figs' , 'Guavas'
,
'Kiwis'
]
现在,我们使用thedel语句从此字典中删除两个元素。如果现在打印键和值,您将看到它仅返回其余项目。现在,原始词典中的更改将反映在视图中(此处为键和值)。
>> > del fruits[ 'Figs' ]
>> > del fruits[ 'Guavas' ]
>> > print (list(keys), list(values))
[ 'Mangos'
,
'Kiwis'
] [12, 70]
现在,通过映射,您将仍然能够找回原始字典的只读代理。cool! 是不是
# returns a read-only proxy of the original dictionary
>> > values.mapping
mappingproxy({ 'Mangos' : 12, 'Figs' : 100, 'Guavas' : 3, 'Kiwis' : 70})
>> > values.mapping[ 'Guavas' ]
3
(4) 消除一些向后兼容性
集合模块的抽象基类(ABC)的别名支持将从Python 3.10开始删除。因此,现在是停止忽略相应的"弃用警告"并改编代码的好时机。
高达Python 3.9.0b4(于2020年7月3日发布)
到现在为止,在DeprecationWarning中将直接从collections模块中导入任何这些ABC。
>>> from collections import ABC_Name
DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in
3.9
Python 3.10 明年发布,看看都有哪些新特性?的更多相关文章
- Elasticsearch 7.0 发布都有哪些新特性
了解about云知识星球 .pcb{margin-right:0} 问题导读 1.Elasticsearch&Kibana 7.哪些需要修改? 2.Elasticsearch7 有哪些新特性? ...
- 从java1到java9每个版本都有什么新特性?
每次出新版本,大家大概都会这么问,"Java X会有什么特性呢?" .在下面的内容里,我总结了至今为止的Java主要发行版中各自引入的新特性,这样做的目的是为了突出各个新特性是在哪 ...
- Spring Boot 2.2.2 发布,新增 2 个新特性!
Spring Boot 2.2.2 发布咯! Spring Boot 2.2.1 发布,一个有点坑的版本! 2.2.1 发布没过一个月,2.2.2 就来了. Maven依赖给大家奉上: <dep ...
- Java 10 的 10 个新特性,将彻底改变你写代码的方式!
Java 9才发布几个月,很多玩意都没整明白,现在Java 10又快要来了.. 这时候我真尼玛想说:线上用的JDK 7 甚至JDK 6,JDK 8 还没用熟,JDK 9 才发布不久不知道啥玩意,JDK ...
- Java 10 的 10 个新特性,你颤抖了吗?
Java 9才发布几个月,很多玩意都没整明白,现在Java 10又快要来了.. 这时候我真尼玛想说:线上用的JDK 7 甚至JDK 6,JDK 8 还没用熟,JDK 9 才发布不久不知道啥玩意,JDK ...
- Java 10的10个新特性,将彻底改变你写代码的方式!
Java 9才发布几个月,很多玩意都没整明白,现在Java 10又快要来了.. 这时候我真尼玛想说:线上用的JDK 7 甚至JDK 6,JDK 8 还没用熟,JDK 9 才发布不久不知道啥玩意,JDK ...
- Python不能用于大型项目?关于Python的10大误解
 语言多元化是PayPal编程文化中一个重要的组成部分.在C++和Java长期流行的同时,更多的团队选择了Jva和Scala.同时,Braintree的收购也引入了一个久经世故的Ruby社区.Pyt ...
- Python 3.8.0 正式版发布,新特性初体验
北京时间 10 月 15 日,Python 官方发布了 3.8.0 正式版,该版本较 3.7 版本再次带来了多个非常实用的新特性. 赋值表达式 PEP 572: Assignment Expressi ...
- Python 3.8.0 正式版发布,新特性初体验 全面介绍
Python 3.8.0 正式版发布,新特性初体验 北京时间 10 月 15 日,Python 官方发布了 3.8.0 正式版,该版本较 3.7 版本再次带来了多个非常实用的新特性. 赋值表达式 PE ...
随机推荐
- 4.23 子集 分数规划 二分 贪心 set 单峰函数 三分
思维题. 显然考虑爆搜.然后考虑n^2能做不能. 容易想到枚举中间的数字mid 然后往mid两边加数字 使其整个集合权值最大. 这里有一个比较显然的贪心就不再赘述了. 可以发现这样做对于集合是奇数的时 ...
- win10 安装tensorflow2.0 GPU版本遇到的坑
背景:我的机器上tensorflow 1.14 & 2.0,这俩版本都有,之前都是用1.14版本,今天试一下2.0尝尝鲜, 结果就掉坑去了 把CUDA10.1 和 cudnn 安装 ...
- vue cli4构建基于typescript的vue组件并发布到npm
基于vue cli创建一个vue项目 首先安装最新的vue cli脚手架, npm install --global @vue/cli npm WARN optional SKIPPING OPTIO ...
- Centos7下安装一个或多个tomcat7完整
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,在运用中也占有大部分的市场. 根据系统下载对应的版,在线的下载地址 ...
- Java语言特性
Java的语言特性: 1.语法相对简单 2.面向对象 3.分布性 4.可移植性 5.安全性 6.健壮性 7.解释性 8.多线程 9.动态性与并发性 Java中的面向对象编程: 面向对象程序设计(Obj ...
- 用 Python 可以实现侧脸转正脸?我也要试一下!
作者 | 李秋键 责编 | Carol 封图 | CSDN 下载自视觉中国 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例 ...
- 一文搞定Python正则表达式
本文对正则表达式和 Python 中的 re 模块进行详细讲解 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知 ...
- 2020-05-11:redis 10G 内存开一个实例 和redis 1G内存开10个实例有什么区别
福哥答案2020-05-11: 此答案不完善,仅供参考.开10个实例相对更占资源,在多核下能充分利用资源.
- JavaScript 数组中根据某个属性值的中文进行排序
普通排序 const arr = [] arr.sort((x, y) => x.prop - y.prop) 中文属性值排序 const arr = [] arr.sort((x, y) =& ...
- 文件上传控件bootstrap-fileinput中文设置没有效果的情况
1.引入zh.js顺序错误 zh.js需放到fileinput.js下面 2. 组件创建语法错误 (class=“file”) 如果你使用js初始化fileinput组件,那么在html元素中应删除 ...