网站首页 > 编程文章 正文
来源 | 闻数起舞
我们目前生活在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爱好者来说,显然,有趣的时代即将到来。浏览三个版本(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
将引入一个新的方法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')
压缩将是"严格的"
新的可选关键字参数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
字典的只读视图
字典的三个键方法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
消除一些向后兼容性
集合模块的抽象基类(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 it will stop working
猜你喜欢
- 2024-10-18 Python3.10版本新增语法——结构模式匹配简介
- 2024-10-18 Python3.11性能测评超3.10近64%
- 2024-10-18 青灯教育|Python 3.9正式版,新特性提前一睹为快
- 2024-10-18 Python 3.12 新特性盘点:从错误消息到性能优化
- 2024-10-18 Python教父推荐:《Python基础教程》(第3版) 中文PDF电子版限免
- 2024-10-18 这个用Python编写的大数据测试工具,我给100分
- 2024-10-18 Python的未来在哪里?4年性能提升5倍,4.0也许永远不会来
- 2024-10-18 Python3 自学第10天:流程控制(python常见的流程控制结构有哪几种?)
- 2024-10-18 Python 3.12 目标:还可以更快(python 多目标规划)
- 2024-10-18 第一节 Python 安装与设置(python安装及配置)
你 发表评论:
欢迎- 06-24一个老爸画了超级有爱的365幅画 | 父亲节献礼
- 06-24产品小白看魏则西事件——用产品思维审视百度推广
- 06-24某教程学习笔记(一):13、脚本木马原理
- 06-24十大常见web漏洞——命令执行漏洞
- 06-24初涉内网,提权那些事(内网渗透提权)
- 06-24黑客命令第16集:47种最常见的**网站方法2/2
- 06-24铭说 | 一句话木马的多种变形方式
- 06-24Java隐藏的10倍效率技巧!90%程序员不知道的魔法方法(附代码)
- 最近发表
- 标签列表
-
- spire.doc (70)
- instanceclient (62)
- solidworks (78)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)