网络编程
位置:首页>> 网络编程>> Python编程>> 现代Python编程的四个关键点你知道几个

现代Python编程的四个关键点你知道几个

作者:shunshunss  发布时间:2023-11-22 02:17:42 

标签:Python,编程,关键点

现代Python编程的四个关键点你知道几个

作为一个诞生已有 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 port。

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 还有大量的附加组件来扩展其功能(例如,用于测试异步代码)。

来源:https://blog.csdn.net/shunshunss/article/details/122829842

0
投稿

猜你喜欢

  • 设计与开发之间本有一线界限,但当时代步入又一个十年,这个线变得更加模糊甚至感觉不到它的存在。使用PS设计网页版面,足矣?或许五年前是吧!现在
  • 这个使用起来很简单,以前需要的时候在网上找的,用了感觉还不错,具体的看演示就明白了。,这个可以保留你文章中的html标记,需要你修改的就是下
  • 本文实例为大家分享了python绘制汉诺塔的具体代码,供大家参考,具体内容如下源码:import turtleclass Stack: &n
  • 数据库查询优化的实用技巧:本文中,abigale代表查询字符串,ada代表数据表名,alice代表字段名。技巧一:问题类型:ACCESS数据
  • 语法: text-overflow : clip | ellipsis 参数: clip : 不显示省略标记(...),而是简单的裁切 el
  • 因为他的简单实用和数量庞大的插件,所以我们喜欢和使用jQuery,在jQuery数量庞大的插件中有很大的一部分是关于图片的,所以今天我们就整
  • IE下专属CSS:<![if !IE]><link rel="stylesheet" type=&qu
  • 如下所示:interval=stats.t.interval(a,b,mean,std)t分布的置信区 间a:置信水平b:检验量的自由度me
  • 错误号     错误信息5     &n
  •  一、前言 JDK(Java Development Kit )是一切java应用程序的基础,可以说,所有的java应用程序是构建
  • 通过视图来访问数据,其优点是非常明显的。如可以起到数据保密、保证数据的逻辑独立性、简化查询操作等等。但是,话说回来,SQL Server数据
  • 在开发数据库应用中,经常会遇到处理时间的问题,如查询指定时间的记录等。下面就这些常见的问题,结合自己的一些经验,和大家探讨一下这类问题。首先
  • 大家都熟悉迅雷看看里面的电影人气指数这个小图标吧先看看我的效果图再看看迅雷的截图比较好看,是根据电影的人气指数来显示热度,下面我们就来模仿一
  • 1、800*600下,网页宽度保持在778以内,就不会出现水平滚动条,高度则视版面和内容决定。2、1024*768下,网页宽度保持在1002
  • Linux/Unix的系统上,一般默认的 python 版本为 2.x,我们可以将 python3.x 安装在 /usr/local/pyt
  • 之前,我介绍了学习安装并配置前端自动化工具Gulp,觉得gulp确实比grunt的配置简单很多,于是我决定再深入学习一下gulp,就去网上查
  • 1. 引言因为在学习遗传算法路径规划的内容,其中遗传算法中涉及到了种群的初始化,而在路径规划的种群初始化中,种群初始化就是先找到一条条从起点
  • 如何用组件实现自动发送电子邮件?我想做一个能够自动发送电子邮件的程序,该如何做?    这就要用到w3 upl
  • 1. 背景最近在爬取某个站点时,发现在POST数据时,使用的数据格式是request payload,有别于之前常见的 POST数据格式(F
  • 作者:AngelGavin  出处:CSDN一般问题什么是 XML?可扩展标记语言 (XML) 是 Web 上的数据通用语言。它使
手机版 网络编程 asp之家 www.aspxhome.com