作为一门诞生了30多年的编程语言,近年来Python的热度迎来了爆发式增长。让每个人更容易更好地采用Python并利用该语言中所有新的强大功能;InfoWorld总结了开发者在2022年编写现代Python时需要了解的一些关键概念。总共有四个方面,如下:1.Python中的类型提示Python最近推出的类型提示语法允许linters和第三方代码质量工具分析你的代码在运行它之前检查代码并检测可能的错误。您与他人分享您创建的Python代码的次数越多,每个人就越有可能从使用类型提示中受益。Python的每个后续版本都引入了更复杂和更强大的类型注释。如果您养成在短期内学习如何使用类型注释的习惯,您将能够更好地利用每个新的类型提示进行创新。重要的是要记住类型提示是可选的,而不是必需的。并非每个项目都需要它们,类型提示可以使您的大项目易于理解,但小项目则不需要。值得注意的是,虽然在运行时不会强制执行类型提示,但您可以使用Pydantic来实现它。许多广泛使用的Python项目(例如FastAPI)广泛使用Pydantic。2.Python虚拟环境和包管理对于简单的项目和要求不高的开发工作,通常可以直接使用Python内置的venv工具将项目和需求分离。但Python工具的最新进展为开发人员提供了更多选择:Pyenv:如果您需要安装多个Python版本(3.8、3.9、3.10)以满足不同的项目需求,Pyenv允许您在它们之间全局安装Toggle。值得注意的是,它没有官方的Windows支持,但确实存在一个非官方的Windows端口。Pipenv:被称为“人类的Python开发工作流程”,Pipenv旨在管理虚拟环境以及项目的所有依赖项。它还确保依赖关系是确定性的——您获得所需的特定版本,并且它们以您要求的组合工作。但是,Pipenv不涉及任何类型的打包,因此对于您最终要上传到PyPI或与他人共享的项目而言,它并不理想。Poetry:Poetry扩展了Pipenv的工具集,不仅可以管理项目和需求,还可以轻松地将项目部署到PyPI。它还独立于项目目录为您管理虚拟环境。PDM:PDM(“Python开发大师”的简称)是这方面最新的前沿项目。与Poetry和Pipenv一样,PDM为您提供单一界面,用于设置项目、管理其依赖项以及从中构建分发工件。PDM还使用PEP582标准将包本地存储到项目中,因此无需为每个项目创建虚拟环境。但是该工具相对较新,因此在将其用于生产之前请确保它现在可以正常工作。3.Python新语法Python的发展意味着语言本身增加了许多新特性。在最近的几个版本中,Python中添加了一些有用的句法结构,使其更强大、更简洁。最近添加的一些内容包括:模式匹配最近最大的添加是结构模式匹配,它出现在Python3.10中。它不仅仅是所谓的“Python的开关/案例”,它让您可以根据对象的内容或结构做出控制流决策。'walrusoperator',因其外观(:=)而得名,由'walrusoperator'在Python3.8中添加,它引入了赋值表达式,这是一种给变量赋值的方法,然后是测试这个的方法一步变数。它可以在许多常见情况下减少冗长的代码,例如在保留结果的同时检查函数的返回值。Positional-only参数Positional-only参数是Python语法的一个小而有用的最新添加,positional-only参数允许您指示哪些函数参数必须指定为位置参数,而不是关键字参数。这样做的理由通常包括提高代码库的清晰度和简化代码库的未来开发,这是Python的许多其他新功能所关注的重点。4.Python测试Python有自己内置的测试框架Unittest,虽然默认的Unittest还不错,但它的设计和行为已经过时了。pytest框架已成为一种常见的替代方案,它更加灵活(您可以在代码的任何部分声明测试,而不仅仅是一个子集),并且需要编写的模板少得多。此外,Pytest有大量附加组件来扩展其功能(例如用于测试异步代码)。
