2022 年现代 Python 编程的 4 个关键点
作为一个诞生已有 30 余年的编程语言,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 还有大量的附加组件来扩展其功能(例如,用于测试异步代码)。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
写了开源软件没申专利,反被索赔该怎么办?
近日,开源中国接到开源项目作者求助。 王同学在 2018 年 3 月(初中)开始开发基于 Blockly 的树莓派可视化编程软件 BlocklyPi,2018 年暑假发布 Alpha 测试版,使用 GPL-2.0 开源,代码托管在 Gitee 仓库上。王同学近期发现一个“一种基于 blockly 和树莓派的在线图形化编程系统及其使用方法”的专利申请。公开资料显示,这项专利于 2019 年 10 月 22 日公开。 由于该专利的名称和BlocklyPi 的实现路径有相似之处,前期邮件中,王同学想搞清楚古德微的专利是否违反了 GPL 2.0 开源协议,如果违反该怎么维权?在开源中国和他的进一步沟通中,王同学明确更担心的点是,自己的软件是否会侵害古德微公司的专利,被追责,软件是否可以继续写下去?同时,在仔细比对专利描述和自己的软件描述之后,确定二者没有重合的部分。 为此,开源中国第一时间咨询邓超律师,可以明确的是,该专利具体的描述和王同学的软件描述并不相符合,不能判断是否是“谁抄袭了谁”;其次,由于王同学的软件发布更早,因此,即便专利和软件设计思路重合,也不能告王同学侵犯专利权。 孩子可以专...
- 下一篇
谷歌似乎有计划开发 Android 平板电脑
谷歌似乎已经形成了一项新的“Android 平板电脑”计划。Android 创始人之一 Rich Miner 似乎重返 Android 平板电脑部门从事开发,其 LinkedIn 页面目前的头衔为“Android 平板电脑 CTO”,并写明他自 2021 年 3 月以来一直担任该职位。 除了 Rich Miner 这个在 Android 历史中至关重要的人物正在开发平板电脑外,还有另外一些现象也在透露着谷歌对平板电脑的关注,比如我们此前报道的 Google 发布 Android 12L 系统,专为平板和可折叠设备设计。 另外,谷歌放出的招聘广告中有一个岗位叫“高级工程经理:Android 平板应用体验”,其岗位简介有一行非常大胆的预测: 我们相信,计算机的未来正在转向功能更强大、功能更强大的平板电脑。 还有一个叫Android 平板电脑产品管理副总裁的岗位,岗位职责为:“领导团队为 Android 平板电脑制定引人注目的产品路线图和战略。”感兴趣的 OSCer 可以去试试(手动滑稽)。 但是,尽管虽然种种迹象都在表明谷歌在关注 Android 平板电脑部门,但谷歌并未明确表态要开发新款...
相关文章
文章评论
共有0条评论来说两句吧...