我翻阅了python3.9releasenotes和相关讨论。基于这些信息,我想写一个全面的指南,让大家一目了然地了解这些功能以及它们的详细工作原理从字符串方法,到zoneinfo库的引入,增加了许多新功能。此外,还引入了一个新的稳定且高性能的解析器。标准库已更新许多新功能,并添加了新模块zoneinfo和graphlib。改进了多个模块,如ast、asyncio、concurrent.futures、multiprocessing、xml等。此版本进一步稳定了Python标准库字典更新和合并运算符两个新的运算符,|和|=已被添加到内置的dict类中。|运算符用于合并字典,而|=运算符可用于更新字典。合并代码:|>>>a={'farhad':1,'blog':2,'python':3}>>>b={'farhad':'malik','topic':'python3.9'}>>>一个|b{''blog':2,'python':3,'farhad':'malik','topic':'python3.9'}>>>b|{'farhad':1,'blog':2,'python':3,'topic':'python3.9'}更新:=|>>>a|=b>>>a{'blog':2,'python':3,'farhad':'malik'}正如我们在上面看到的,两个新的运算符|和|=已添加到内置的dict类中删除前缀和后缀str对象中添加了新字符串两个新功能。第一个函数删除前缀。是的,str.removeprefix(prefix)的第二个函数删除了后缀。yesstr.removesuffix(suffix)'coxie_python'.removeprefix('coxie_')#returnspython'coxie_python'.removesuffix('_python')#returnscoxie第一个函数去掉前缀。这是str.removeprefix(prefix)。第二个函数删除后缀。它是str.removesuffix(suffix)。内置泛型类型的类型提示此版本已在输入模块中当前可用的所有标准集合中启用了对泛型语法的支持。泛型类型通常是一个容器,例如列表。这是一个可参数化的类型。参数化泛型是具有容器元素预期类型的??泛型实例,例如list[str]我们可以使用list或dict内置集合类型作为泛型类型,而不是使用typing.List或typing.Dict。例如,我们可以通过注释代码来引导Python运行时类型检查:defprint_value(input:str):print(input)#如果输入不是字符串,我们会得到通知比如我们会看到typing.List,typing.字典带有内置列表、字典等。这允许我们编写代码:defread_blog_tags(tags:list[str[)->Nonefordtagintags:print("TagName",tag)RandombytegenerationAnother3.9版中添加的功能是函数random.Random。随机字节()。此函数可用于生成随机字节。我们可以生成随机数,但是如果我们需要生成随机字节呢?在3.9版本之前,开发人员必须创造性地生成随机字节。虽然我们可以使用os.getrandom()、os.urandom()或secrets.token_bytes()我们不能生成伪随机模式。例如,为了确保以预期的方式生成随机数并且过程可重现,我们经常将种子与random.Random模块一起使用。因此,引入了random.Random.randbytes()方法。它还可以以受控方式生成随机字节。字符串替换修复在Python3.9之前的版本中,"".replace("",s,n)为所有非零n返回一个空字符串而不是s。此错误会使用户感到困惑,并导致应用程序出现不一致的行为。这已在3.9版中修复,现在与“.replace(”)一致。替换函数的工作原理是将字符串中的一组字符替换为给定最大替换出现次数参数的一组新字符。srting.replace(s,old,new,[,maxreplace])#返回字符串s的副本,其中所有出现的子字符串old都被new替换
