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

目录
  • 1、Python 中的类型提示
  • 2、Python 虚拟环境和包管理
  • 3、新的 Python 语法
  • 4、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 还有大量的附加组件来扩展其功能(例如,用于测试异步代码)。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • 详解python的网络编程基础

    目录 一.什么是网络编程 二.socket 1.socket的基本语法 2.与socket有关的一些函数 服务端函数 客户端函数 公共函数 三.程序需求 服务端分析 客户端分析 四.代码升级 加上通信循环 加上连接循环以及完善 总结 一.什么是网络编程 网络编程涉及到一些计算机基础知识,还跟你的电脑系统有关,mac os/Linux和windows是不同的,由于我用的是windows,所以以下所有都是windows操作系统的适用的,并且里面的字符编码windows和mac os也是不同的,这里我

  • Python编程基础之运算符重载详解

    目录 学习目标 一.运算符重载 (一)概述 (二)加法运算重载符 1.概述 2.案例演示 总结 学习目标 1.掌握运算符重载 2.会定制对象字符串的形式 一.运算符重载 (一)概述 运算符重载是通过实现特定的方法使类的实例对象支持Python的各种内置操作 .例如:+运算符是类里提供的__add__这个函数,当调用+实现加法运算的时候,实际上是调用了__add__方法. 方法 说明 何时调用方法 __add__ 加法运算 对象加法:x+y,x+=y __sub__ 减法运算 对象减法:x-y,x

  • Python编程-封装,继承与多态

    目录 一.类的封装 1.案例演示 2.案例分析 3.解决方案 1.封装的定义 2.封装的实现 3.案例演示 一.类的封装 为什么需要封装: Python是面向对象的编程语言,因为面向对象中所有的实体都是以对象为基本单位的,以宏观世界的实体来映射到计算机世界中,每个对象有它自己的属性和自己的行为,我们用类来将这些属性和行为封装到一起,当它实例化出来一个对象的时候,我们可以说这个对象具有这些属性性和行为. 对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性

  • Python编程基础之构造方法和析构方法详解

    目录 一.本讲学习目标 二.构造方法 (一)概述 (二)案例演示 三.析构方法 (一)概述 (二)案例演示 四.self的使用 (一)self概述 (二)案例演示 总结 一.本讲学习目标 1.掌握构造方法的使用 2.掌握析构方法的使用 3.掌握self变量的使用 二.构造方法 (一)概述 构造方法指的是__init__()方法. 当创建类的实例的时候,系统会自动调用构造方法,从而实现对类进行初始化的操作. (二)案例演示 编写程序 - 演示构造方法.py 构造方法第一个参数 必须是self,表示

  • Python编程基础之类和对象

    目录 零.本讲学习目标 一.面向对象 (一)程序员“面向对象” (二)两种编程思想实现五子棋 (三)面向过程 vs. 面向对象 (四)面向对象三大特点 1.封装(encapsulation) 2.继承(inheritance) 3.多态(polymorphism) 二.类和对象 (一)类和对象的关系 1.概述 2.示意图 (二)类的定义 1.类的构成 2.类定义语法格式 3.案例演示 (三)创建对象 1.语法格式 2.给对象添加属性 3.案例演示 三.Python中的对象 (一)概述 (二)常用

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

    目录 1.Python 中的类型提示 2.Python 虚拟环境和包管理 3.新的 Python 语法 4.Python 测试 总结 作为一个诞生已有 30 余年的编程语言,Python 的流行度在近几年迎来了爆炸性的增长.为了方便大家能够更好的采用 Python,利用该语言中所有新的和强大的功能;InfoWorld 归纳总结了开发人员在 2022 年编写现代 Python 时所需要理解的一些关键概念.总共四个方面,具体如下: 1.Python 中的类型提示 Python 最近引入的类型提示语法

  • Python多线程编程(四):使用Lock互斥锁

    前面已经演示了Python:使用threading模块实现多线程编程二两种方式起线程和Python:使用threading模块实现多线程编程三threading.Thread类的重要函数,这两篇文章的示例都是演示了互不相干的独立线程,现在我们考虑这样一个问题:假设各个线程需要访问同一公共资源,我们的代码该怎么写? 复制代码 代码如下: ''' Created on 2012-9-8   @author: walfred @module: thread.ThreadTest3 '''  impor

  • Python编程中的反模式实例分析

    本文实例讲述了Python编程中的反模式.分享给大家供大家参考.具体分析如下: Python是时下最热门的编程语言之一了.简洁而富有表达力的语法,两三行代码往往就能解决十来行C代码才能解决的问题:丰富的标准库和第三方库,大大节约了开发时间,使它成为那些对性能没有严苛要求的开发任务的首选:强大而活跃的社区,齐全的文档,也使很多编程的初学者选择了它作为自己的第一门编程语言.甚至有国外的报道称,Python已经成为了美国顶尖大学里最受欢迎的编程入门教学语言. 要学好一门编程语言实属不易,在初学阶段,就

  • Python编程之基于概率论的分类方法:朴素贝叶斯

    概率论啊概率论,差不多忘完了. 基于概率论的分类方法:朴素贝叶斯 1. 概述 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类.本章首先介绍贝叶斯分类算法的基础--贝叶斯定理.最后,我们通过实例来讨论贝叶斯分类的中最简单的一种: 朴素贝叶斯分类. 2. 贝叶斯理论 & 条件概率 2.1 贝叶斯理论 我们现在有一个数据集,它由两类数据组成,数据分布如下图所示: 我们现在用 p1(x,y) 表示数据点 (x,y) 属于类别 1(图中用圆点表示的类别)的概率,用 p2(

  • Python 编程速成(推荐)

    Python是一种非常流行的脚本语言,而且功能非常强大,几乎可以做任何事情,比如爬虫.网络工具.科学计算.树莓派.Web开发.游戏等各方面都可以派上用场.同时无论在哪种平台上,都可以用 Python 进行系统编程. 机器学习可以用一些 Python 库来实现,比如人工智能常用的TensorFlow.也可以用像 NLTK 这样的 Python 库进行自然语言处理(NLP). 本文讨论基本的 Python 编程,后续会写一些 Python 编程的实际案例. 操作字符串 Python 中的字符串是不可

  • python编程的核心知识点总结

    一.为什么提出python编程的核心是什么? 我想要Python实现,这已经不是什么秘密了.WebAssembly它不仅会让Python进入浏览器,而且事实是两者都是IOS和安卓支持将JavaScript作为应用程序的一部分运行,它还可以让Python进入移动平台.这一切都让我兴奋. 但是当想到创建Python的新实现这一艰巨任务时,我的大脑也开始问到底是什么东西.是Python?我们一起生活过CPython长期以来,我怀疑我们大多数人只是认为"Python==CPython".皮皮试

  • python编程使用selenium编写测试用例

    目录 1. 导入依赖 2. 创建driver 3. 执行自动化步骤 4. 断言 from selenium import webdriver class TestBaiDu(): def setup(self): self.driver=webdriver.Chrome() self.driver.maximize_window() self.driver.implicitly_wait(5) def teardown(self): self.driver.quit() def test_bai

  • Python编程中*args与**kwargs区别作用详解

    相信学Python的小伙伴肯定有这样的尴尬局面,给一个函数不会用, 原因是:不知道参数列表中的类型是什么意思,比如初学者都会疑问的:*args和**kwargs到底是怎么用. 当你知道这个时,我猜你肯定能会用好多函数了! #*args的用法:当传入的参数个数未知,且不需要知道参数名称时. def func_arg(farg, *args): print("formal arg:", farg) for arg in args: print("another arg:"

  • python编程webpy框架模板之def with学习

    目录 一:模板的理解 二:简单模板 三:def with 四:注意 一:模板的理解 模板是将一个事物的结构规律予以固定化.标准化的成果. 例如:网页的组成需要是html,head,body,你只要按照它的规则来写,里面具体是怎么执行的,你需要去了解其他知识. web.py:页面统一通过html文件和后台的类来对应,web框架为html文件获取类中的参数提供了完整的机制. 二:简单模板 1.  在你的目录下新建文件html,在该文件夹下创建index.html文件 index.html中的内容:

  • 9个提高 Python 编程的小技巧

    目录 01 交换变量 02 字典推导和集合推导 03 计数时使用Counter计数对象 04 漂亮的打印出JSON 05 解决FizzBuzz 06 连接 07 数值比较 08 同时迭代两个列表 09 带索引的列表迭代 前言: 初识Python语言,觉得python满足了你上学时候对编程语言的所有要求.python语言的高效编程技巧让那些曾经苦逼学了四年c或者c++的人,兴奋的不行不行的,终于解脱了.高级语言,如果做不到这样,还扯啥高级呢? 01 交换变量 >>>a=3 >>

随机推荐