Python 3.9计划发布六个alpha,五个beta预览版和两个候选版本 51本最佳Python书籍推荐 Python和Django可以帮助您更快地构建出色的应用程序和网站 将短波天线与RTL-SDR和PYTHON进行比较 不会C语言也可以是资安高手 学好Python就能和骇客大战 Evilnum集团以基于Python的新型RAT瞄准金融科技公司 Python编程:Microsoft和NASA发布学生学习门户 如何在Python中使用if语句 为什么Python不会很快消失 Python编程:微软最新的初学者课程着眼于为NASA项目开发 可视化的Datapane Python工具动手指南 物联网如何在不久的将来改变我们的体验 计算机操作系统的使用率 大脑般的计算机首次亮相 智能电视是印度的未来 小米是印度的先驱 物联网和医疗保健技术融合以提供更好的患者护理 超级电容器Usurp电池技术 OP-ED:第四次工业革命中蓬勃发展 研究显示长期演进(LTE)物联网(IOT)市场稳定增长 BITS Pilani Hyd孵化创业公司开发支持IoT的智能面罩 物联网在航运和海事行业中的作用 基于云的数据库市场2020年研究分析 艾默生以16亿美元收购美国技术软件公司OSI 2020年将提供7种基于分析的健身跟踪软件 新的恶意软件使用Tor和Bittorrent开采加密和窃取资金 数以百万计的WordPress网站正在通过最新的插件错误进行探测和攻击 保护您的网站免受数据泄露的简单方法 多年的物联网黑客攻击,但我们实际上学到了什么 如何在2020年成为不受限制的免费Fire黑客 阿根廷移民:黑客窃取了秘密情报文件 像职业黑客一样,这个少年攻击了学校服务器并强迫在线课程停止 特斯拉模型3:这是黑客在您的屏幕上发现的问题 如果每个人都讨厌面向对象的编程,那么为什么它是如此广泛地展开 新的莫尔黑德天文馆图画书探索了其第一位技术员的故事 Windows和Mac的3个快速提示 DOOM正在运行妊娠测试?程序员通过其他设备尝试 Cookies能解决您的计算机问题吗 Gift在NKU建立了计算机科学专业教授职位 OSU的计算机漏洞暴露了1,700名学生和教职员工的个人信息 NSF计算机与信息科学与工程系副主任于9月11日进行虚拟演讲 终极防御:什么是气隙计算机 2020年医疗保健市场的物联网全球增长分析 给物联网设备用户和制造商的建议 物联网:物联网支出有望反弹 什么是物联网及其运作方式?物联网解释 如何以程序员的身份加入Disbelief 新的Python程序员 首先学习这些概念 程序员生活中的一天 解决问题时如何像程序员一样思考 如何为您的创业者找到程序员
您的位置:首页 >程序人生 >

Python 3.9计划发布六个alpha,五个beta预览版和两个候选版本

Python 3.9预计将于2020年10月5日星期一发布。在发布正式版本之前,开发人员计划发布六个alpha,五个beta预览版和两个候选版本。

在撰写本文时,第一位候选人于8月11日发布。现在,我们正在焦急地等待第二个候选版本的发布,该版本可能会在9月14日发布。

因此,您可能想知道Python 3.9的新增功能。对?

有一些重大更改将决定Python程序的工作方式。最重要的是,在此最新版本中,您将获得一个基于解析表达式语法(PEG)的新解析器。同样,将合并|和更新并|=运算符添加到dict。

因此,让我们仔细看一下Python 3.9的所有即将发布的功能和改进。

基于PEG的新解析器

与较早的LL(1)解析器不同,更新的版本具有一些关键差异,从而使其更加灵活和面向未来。基本上在LL(1)中,Python开发人员使用了一些“ hacks”来避免其局限性。反过来,它影响添加新语言功能的灵活性。

PEG和基于上下文无关语法的解析器(例如LL(1))之间的主要区别在于,在PEG中,选择运算符是有序的。

假设我们写这个。rule: A | B | C

现在,对于LL(1)解析器,它将生成构造以得出必须扩展A,B或C中的哪一个的结论。另一方面,PEG将尝试检查第一个替代方案(例如A)是否成功。仅当不成功时,它将继续到下一个替代方案。简而言之,PEG将按照替代的编写顺序对其进行检查。A

支持IANA时区

在实际应用中,用户通常仅需要三种时区。

世界标准时间

系统的本地时区

IANA时区

现在,如果您已经熟悉Python的早期版本,那么您可能知道Python 3.2引入了classdatetime.timezone。基本上,其主要目的是为UTC提供支持。

实际上,本地时区仍然不可用。但是,在Python 3.0版中,开发人员更改了朴素时区的语义以支持“本地时间”操作。

在Python 3.9中,他们将添加对IANA时区数据库的支持。在大多数情况下,此数据库也称为“ tz”或Olson数据库。因此,不要与这些术语混淆。

所有IANA时区功能都包装在zoneinfo模块中。该数据库非常流行,并且广泛分布在类Unix操作系统中。但是请记住,Windows使用完全不同的方法来处理时区。

添加了联合运算符

在以前的Python版本中,合并或更新两个字典并不十分有效。这就是为什么开发人员现在引入工会运营商之类的原因,以进行合并和更新指令。||=

例如,之前使用时,它也会进行修改。因此,要解决此问题,我们必须实施类似的小“技巧”。d1.update(d2)d1e = d1.copy(); e.update(d2)

在这里,我们正在创建一个新的临时变量来保存该值。但是,这种解决方案不是很有效。这就是添加这些新的Union Operators的主要原因。

引入removeprefix()和removesuffix()

您是否曾经想过需要一些可以轻松删除给定字符串中的前缀或后缀的函数?

现在,你可能会说,目前已经有一些类似的功能,并可以做到这一点。但是,这就是混乱的开始。实际上,这些函数使用一组字符而不是子字符串。str.lstrip([chars])str.rstrip([chars])

因此,绝对需要一些单独的函数,这些函数可以从字符串的开头或结尾删除子字符串。

另一个原因是提供的内置支持,并为应用程序开发人员通常会写上自己的这一功能,以提高他们的工作效率。但是,在大多数情况下,它们在处理空字符串时会出错。因此,内置解决方案对于实际应用程序可能非常有用。removeprefix()removesuffix()

标准集合中的类型提示泛型

您是否注意到模块中重复的收集层次结构?typing

例如,您可以使用或内置。因此,在Python 3.9中,核心开发团队决定在模块中添加对泛型语法的支持。现在可以在该模块中可用的所有标准集合中使用该语法。typing.Listlisttyping

现在,此功能的主要优点是用户可以轻松注释其代码。它甚至可以帮助讲师更好地教Python。

添加了graphlib模块

在图形中,拓扑顺序在识别作业流中起着重要作用。这意味着它遵循线性顺序,以告诉哪个任务将在另一个任务之前运行。

该模块使我们能够执行图的拓扑排序或排序。它主要用于可散列节点。graphlib

Python 3.9中增强的模块

我认为,主要工作是在改进现有模块的同时进行的。您可以通过以下事实进行评估:更新了35个模块的庞大列表以优化Python编程语言。

一些最显著的变化发生内,,,,,,,,,,,和模块。gchttpimaplibipaddressmathospydocrandomsignalsockettimesys

不推荐使用的Python功能

Python版本3.9不推荐使用约16个功能。您可以从Python 3.9官方公告中获取详细信息。在这里,我将简要概述不推荐使用的最重要的内容。

如果您曾经使用过模块,那么您可能知道它可以接受任何可散列的类型作为种子值。这可能会产生意想不到的后果,因为无法保证哈希值是否是确定性的。因此,开发人员决定只接受None,int,float,str,bytes和bytearray作为种子值。random

另外,从现在开始,您必须指定参数以打开要写入的文件。modeGzipFile

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。