当前位置: 首页 > 科技观察

Python3.9正式发布,16岁高中生自制“新特性必知图”

时间:2023-03-13 08:13:06 科技观察

本文经AI新媒体量子位授权转载(公众号ID:QbitAI),转载请联系出处。Python3.9,“千呼万唤始”。让我们快速浏览一下此版本的要点。新语法功能:PEP584,为dict添加了合并运算符。PEP585,标准多项式集中的类型注释泛型。PEP614,放宽装饰器的语法限制。新的内置功能:PEP616,删除了前缀和后缀的字符串方法。新标准库中的特性:PEP593、灵活的函数和变量注释。添加了os.pidfd_open(),允许在没有竞争和信号的情况下进行进程管理。解释器改进:PEP573,从C扩展类型的方法快速访问模块状态。PEP617,CPython现在使用基于PEG的新解析器。...新库模块:PEP615,IANA时区数据库现在包含在标准库的zoneinfo模块中。新的graphlib模块现在提供了图形的拓扑排序实现。为了更好地了解这次更新,Twitter上的16岁男孩PrathamPrasoon还做了一张“Python3.9新特性必知图”。他列举了八个他认为比较重要的新功能,得到了网友的广泛好评。DictionaryMergeandUpdateOperators“字典合并和更新操作符”这个新特性是Python3.9的一大亮点。合并(|)和更新(|=)运算符已添加到内置的dict类中,扩展了现有的dict.update和{**d1,**d2}字典合并方法。Prasoon提供的图中也有相应的例子,如下图所示:Python官方文档和Prasoon的图中也标出了去除前缀和后缀的新字符串方法。在“删除前缀和后缀的字符串”方法中。str.removeprefix(prefix)和str.removesuffix(suffix)方便去除字符串中不需要的前缀或后缀:TypeAnnotationsintheStandardPolynomialSetItemsettypes(suchaslistanddict)areusedasgenerictypes,andthereisno需要从typing中导入相应的大写类型名称。__import__()属性修改了__import__()现在引发ImportError而不是ValueError。至于原因,在Python的官方文档中有相应的解释:后者曾经是相对导入超过其最高层包时发生的。新模块在新模块方面,zoneinfo模块将IANA时区数据库引入标准库。这是一个基于系统时区数据的实体datetime.tzinfo实现,示例如下图所示。改进的模块除了新的模块,Python3.9还改进了一些原有的模块。Prasoon举了一个他认为比较重要的词——Random。名为random.Random.randbytes的方法可用于生成随机字节串,如下图所示。此外,还有cancel_futures。Python3.9在concurrent.futures.Executor.shutdown()中增加了一个新的cancel_futures参数,可以取消所有还没有开始运行的pendingFutures,而不必等它们运行完再关闭executor。当然,除了这8个新特性,Python官方文档也更加详细的列出了本次更新的内容。感兴趣的读者可以点击文末链接进行更深入的了解。关于作者PrathamPrasoon是一名16岁的印度高中生,他对金融充满热情,对编程世界充满好奇,并且自称为科学极客。作为一名程序员,他认为自己是一个“工具无关”类型的玩家,即没有使用特定的编程语言,但他会根据自己的目的做出选择。目前,他正在学习React、Flask、Django和Tensorflow。