公司出品开放源码中国
作者隔夜茶
作为一个问世已有30百余年的C语言,Python 的流行度在近些年迎了氮烷的增长。为了方便我们能更快的采用 Python,借助该语言中大部份捷伊和强悍的功能;InfoWorld 概括归纳了开发者在2022年撰写当代 Python 而所须要理解的一些关键概念。
一共四个方面,具体如下表所示:
1、Python 中的类别提示信息
Python 最近导入的类别提示信息句法容许 linter 和第三方标识符质量辅助工具在运转前分析你的标识符,并在检验出可能将发生的严重错误。你建立的 Python 标识符与别人共享资源的单次越多,我们就越有可能将从采用类别提示信息中受惠。
Python 的每一先期版都推出了更复杂、更强悍的类别注释。假如你教养了短期内学习如何采用类别注释的习惯,那么就能更快地借助每一种捷伊类别提示信息创新。
重要的是要读懂类别提示信息是较旧的,而并非必须的。并非每一工程项目都须要它,类别提示信息能使你的大工程项目变得简练,但小工程项目却并无谓。更为重要的是,虽然在运转时不禁制类别提示信息,但你能采用 Pydantic 来使之成为可能将。许多广为采用的 Python 工程项目:如 FastAPI,都广为采用 Pydantic。
2、Python 程序标识符和包管理组织工作
对简单的工程项目和明确要求相对较低的开发组织工作,通常能只采用 Python 的内建venv辅助工具将工程项目及其市场需求合二为一。但 Python 辅助工具的韦谢列则为开发者提供了更多选择:
Pyenv:假如你须要加装多个 Python 版(3.8、3.9、3.10)以满足不同的工程项目明确要求,Pyenv 容许你在每一工程项目的基础上在它之间进行自上而下转换。更为重要的是,它没有非官方的 Windows 支持,但确实存在非正式的 Windows 路由器。Pipenv:被称为“Python dev workflow for humans”,Pipenv 意在管理组织工作程序标识符以及工程项目的大部份倚赖项。它还保证倚赖关系是估值合理的——你得到你想的某一版,并且它以你明确要求的女团方式组织工作。但是,Pipenv 不涉及任何形式的装箱,因此对你最终想上传至 PyPI 或与别人共享资源的工程项目来说,它并不平庸。Poetry:Poetry 扩充了 Pipenv 的辅助开发工具,不仅能管理组织工作工程项目和市场需求,还能随心所欲地将工程项目布署到 PyPI。它还为你管理组织工作独立于工程项目产品目录的程序标识符。PDM:PDM(“Python Development Master”的简写)是这点最捷伊最前沿工程项目。与 Poetry 和 Pipenv 一样,PDM 为你提供了一个用于设置工程项目、管理组织工作其倚赖项以及从中构建分发工件的单一界面。PDM 还采用 PEP 582标准将包本地存储到工程项目中,因此无需建立每一工程项目的程序标识符。但是这个辅助工具相对较新,所以在生产中采用它之前要保证它能暂时组织工作。
3、捷伊 Python 句法
Python 的发展意味着该语言本身增加了许多新功能。Python 最捷伊几个版中添加了一些有用的句法结构,使其更强悍和更简洁程。最近增加的一些内容包括:
Pattern matching
最近最大的新增功能是结构模式匹配,出现在 Python 3.10中。它不仅仅是所谓的“switch/case for Python”,还能让你根据对象的内容或结构做出控制流决策。
The ‘walrus operator’
因其外观(:=)而得名,在 Python 3.8中添加的“walrus operator(海象操作符)”导入了赋值表达式,这是一种将一个值赋给一个变量,然后在一个步骤中对该变量进行测试的方法。它能在许多常见情况下减少冗长的标识符,例如检查函数的返回值同时保留结果。
Positional-only parameters
最近对 Python 句法的一个小而有用的新增功能 positional-only parameters 容许你指明哪些函数参数必须指定为位置参数,而并非关键字参数。这样做的基本原理通常包括提高标识符库的清晰度和简化标识符库的未来开发,这也是许多 Python 的其他新特性所关注的目标。
4、Python 测试
Python 有自己的内建测试框架 Unittest,虽然 Unittest 作为默认设置还不错,但它的设计和行为已经过时了。Pytest 框架已成为一种常见的替代品,要更灵活(你能在标识符的任何部分声明测试,而不仅仅是一个子集),并且须要撰写的模板少得多。另外,Pytest 还有大量的附加组件来扩充其功能(例如,用于测试异步标识符)。