前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >颠覆你认知的Python3.9

颠覆你认知的Python3.9

作者头像
用户2966292
发布2021-03-27 18:17:09
4170
发布2021-03-27 18:17:09
举报
文章被收录于专栏:CoXie带你学编程CoXie带你学编程

我通读了python 3.9发行说明和相关的讨论。根据这些信息,我想写一个全面的指南,以便每个人都能一眼了解这些功能及其详细的工作原理

简而言之

从字典更新/合并到添加新的字符串方法,再到引入zoneinfo库,都添加了许多新功能。

此外,已经引入了新的稳定且高性能的解析器。 标准库已更新为具有许多新功能,并增加了新的模块zoneinfographlib。多个模块已经过改进,如ast,asyncio,concurrent.futures,multiprocessing,xml等.

这个版本进一步稳定了Python标准库

字典更新和合并运算符

两个新的运算符,|并且|=已添加到内置dict 类中。 该|运算符用于合并的字典,而|=运营商可用于更新词典。

代码对于合并:|

代码语言:javascript
复制
>>> a = {'farhad':1, 'blog':2, 'python':3}   
>>> b = {'farhad':'malik', 'topic':'python3.9'} 
>>> a | b
    {''blog':2,'python':3 ,'farhad':'malik', 'topic':'python3.9'}>>> b | a                     
     {'farhad':1, 'blog':2,'python':3,'topic':'python3.9'}  

更新: =|

代码语言:javascript
复制
>>> a | = b
>>> a
    {'blog':2, 'python':3, 'farhad':'malik'}

正如我们在上面看到的,两个新的运算符||=已被添加到内置dict 类中

删除前后缀新字符串

str对象中已添加了两个新功能。

  • 第一个函数删除前缀。是的str.removeprefix(prefix)
  • 第二个功能删除后缀。是的str.removesuffix(suffix)

'coxie_python'.removeprefix('coxie_') # 返回python 'coxie_python'.removesuffix('_python') # 返回coxie

第一个函数删除前缀。这是str.removeprefix(prefix).

第二个功能删除后缀。它是str.removesuffix(suffix).

内置通用类型的类型提示

此版本已启用了键入模块中当前可用的所有标准集合中对泛型语法的支持。 泛型类型通常是一个容器,例如列表。这是可以参数化的类型。参数化的泛型是泛型的实例,具有容器元素的预期类型,例如list [str]

我们可以将listdict内置集合类型用作通用类型,而不是使用typing.List or typing.Dict.

例如,我们可以通过注释代码来指导Python运行时类型检查:

def print_value(input:str): print(input) #如果输入不是字符串,我们将得到通知

举例来说,我们会看到typing.List,typing.Dictionary带有内置一起list,dictionary等。这使我们能够编写代码:

def read_blog_tags(tags:list[str[) -> None for dtag in tags: print("Tag Name",tag)

随机字节生成

在3.9版本中添加的另一个功能是function random.Random.randbytes()。该函数可用于生成随机字节。

我们可以生成随机数,但是如果我们需要生成随机字节怎么办?在3.9版之前,开发人员必须具有创造力才能生成随机字节。尽管我们可以使用,os.getrandom(), os.urandom() or secrets.token_bytes() 但是我们不能生成伪随机模式。

例如,为确保随机数以预期的方式生成且过程可重现,我们通常将种子与random.Random模块一起使用。 结果,random.Random.randbytes()已经引入了方法。它也可以以受控方式生成随机字节。

字符串替换功能修复

在Python 3.9之前的版本中,“”.replace(“”,s,n)对于所有非零n ,返回的空字符串而不是s。 此错误使用户感到困惑,并导致应用程序中行为不一致。 3.9版本已解决此问题,现在与保持一致"".replace("", s)replace 函数的工作方式是,对于给定的最大替换发生参数,它将字符串中的一组字符替换为一组新的字符。

srting.replace(s,old,new,[,maxreplace]) # 返回字符串 s的副本,其中所有出现的子字符串old都被new替换

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python不等式 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 字典更新和合并运算符
  • 删除前后缀新字符串
  • 内置通用类型的类型提示
  • 随机字节生成
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档