【学海拾贝】| 关于Python的 PEP 484规则了解:类型提示,函数注解

news2024/11/20 18:31:36

在实际的工厂在实际的工程代码的开发中,常常可以碰到这种情况

在这里插入图片描述

上网查了之后发现这是PEP484规则~

文章目录

  • 1 Type Hints for Variables(变量在这里插入图片描述
  • 2 Function Annotations(函数注解)
  • 3 Type Checking Tools(类型检查工具)
  • 4 Optional Type Hints(可选类型提示)

PEP 484 是 Python Enhancement Proposal(PEP)的一部分,它引入了类型提示(Type Hints)的概念,旨在增强 Python 语言的静态类型检查能力。PEP 484 于 2014 年由 Guido van Rossum 提出,并在 Python 3.5 版本中被正式采纳。

类型提示是一种在函数参数、返回值以及变量上添加类型信息的注解,这些注解并不会影响运行时的行为,但可以被静态类型检查工具和IDE用来提供更好的代码分析和错误检测。PEP 484 引入的类型提示主要通过使用注解的方式来定义函数和变量的类型信息。

以下是 PEP 484 引入的一些主要概念和语法:

1 Type Hints for Variables(变量在这里插入图片描述

的类型提示)

使用冒号 : 后跟类型的方式来为变量添加类型提示。

x: int = 5

2 Function Annotations(函数注解)

在函数参数和返回值上使用类型提示。

def add(x: int, y: int) -> int:
    return x + y

3 Type Checking Tools(类型检查工具)

引入了一些类型检查工具,例如 mypy,用于在开发过程中对代码进行静态类型检查。

# 使用 mypy 进行类型检查
# mypy filename.py

4 Optional Type Hints(可选类型提示)

类型提示是可选的,不会影响运行时行为,但对于类型检查工具提供了更多信息。

def greet(name: str, age: Optional[int] = None) -> str:
    if age is not None:
        return f"Hello, {name}! You are {age} years old."
    else:
        return f"Hello, {name}!"

PEP 484 的引入使得 Python 可以更好地支持静态类型检查,提高了代码的可读性和维护性,同时为开发者提供了更好的工具支持。在 PEP 484 的基础上,后续版本的 Python 进一步完善了类型提示的功能,如 PEP 563(Postponed Evaluation of Type Annotations)等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1547307.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【比特币】比特币的奥秘、禁令的深层逻辑与风云变幻

导语: 比特币(Bitcoin),这个充满神秘色彩的数字货币,自诞生以来便成为各界瞩目的焦点。它背后所蕴含的Mining机制、禁令背后的深层逻辑以及市场的风云变幻,都让人欲罢不能。今天,我们将深入挖掘比特币的每一个角落&…

视觉图像处理与FPGA实现第七次作业——生成512深度、8位宽度的双端口存储器IP,并分析IP包资料构成

一、生成IP 打开Vivado,点击IP Catalog,搜索memory,双击对应IP核 调整参数为——512深度、8位宽度,双端口,然后一直默认点击OK 二、分析IP构成 查看IP细节,查看设计资源和仿真资源 双击打开文件 设计文件…

代码随想录 图论-并查集

代码随想录 (programmercarl.com) 寻找图中是否存在路径这道题中的类可看做并查集的标准类 目录 1971.寻找图中是否存在路径 684.冗余连接 685.冗余连接II 1971.寻找图中是否存在路径 1971. 寻找图中是否存在路径 已解答 简单 相关标签 相关企业 有一个具有 n 个顶…

NOIP,CSP-J,CSP-S——输入输出进阶

一、输入scanf 格式: int a,b; scanf("%d%d", &a, &b) 类似于 int a,b; cin>>a,b; 双引号里面的两个“%d”表示要输入两个int类型的变量的占位符。然后是要输入的变量名,前面要加“&”,如果有多个变量则用…

SystemUI修改系统状态栏右边的ICON背景颜色

文件在 status_bar.xml 。 如下&#xff1a; <com.android.keyguard.AlphaOptimizedLinearLayout android:id"id/system_icon_area"android:layout_width"0dp"android:layout_height"match_parent"android:background"#ff0000"andr…

我的 Android 性能书上架了!内附书籍介绍

大家好&#xff0c;我是拭心。 很高兴地向大家宣布&#xff0c;我的新书《Android 性能优化入门与实战》上架了&#xff01; 点击下面的小程序进行购买&#xff1a; 封面介绍 这本书的封面来自之前的投票文章 # 投票啦&#xff01;最新安卓进阶书籍封面由你来定&#xff0c;从四…

基于SIR模型的疫情发展趋势预测算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于SIR模型的疫情发展趋势预测算法.对病例增长进行SIR模型拟合分析&#xff0c;并采用模型参数拟合结果对疫情防控力度进行比较。整体思路为采用SIR微分方程模型…

小迪安全48WEB 攻防-通用漏洞Py 反序列化链构造自动审计 bandit魔术方法

#知识点&#xff1a; 1、Python-反序列化函数使用 2、Python-反序列化魔术方法 3、Python-反序列化 POP 链构造&#xff08;payload构造&#xff09; 4、Python-自动化审计 bandit 使用 #前置知识&#xff1a; 函数使用&#xff1a; pickle.dump(obj, file) : 将对…

pdfjs 实现给定pdf数据切片高亮并且跳转

pdfjs 实现给定pdf数据切片高亮并且跳转 pdfjs 类的改写基本展示需求的实现高亮功能的实现查询功能分析切片数据处理 pdfjs 类的改写 需求&#xff1a; pdf文件被解析成多个分段&#xff0c;每个分段需要能够展示&#xff0c;并且通过点击分段实现源pdf内容的高亮以及跳转需求…

深度学习十大算法之图神经网络(GNN)

一、图神经网络的基础 图的基本概念 图是数学中的一个基本概念&#xff0c;用于表示事物间复杂的关系。在图论中&#xff0c;图通常被定义为一组节点&#xff08;或称为顶点&#xff09;以及连接这些节点的边。每个边可以有方向&#xff0c;称为有向边&#xff0c;或者没有方向…

分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)

目录 分布式系统面试全集通第一篇什么是分布式?和微服务的区别什么是分布式分布式与微服务的区别 什么是CAP?为什么不能三者同时拥有分区容错性一致性可用性 Base理论了解吗基本可用软状态最终一致性 什么是分布式事务分布式事务有哪些常见的实现方案?2PC&#xff08;Two Ph…

【javaWeb 第六篇】后端-Tomcat服务器

Tomcat服务器基础入门 TomCat服务器Tomcat使用 TomCat服务器 web服务器是一个软件程序&#xff0c;对HTTP协议的操作进行封装&#xff0c;使得程序员不必直接对协议进行操作&#xff0c;让web开发更加的便捷 如何手动部署 如何手动部署一个web应用到Tomcat服务器中&#xff…

Element-Plus 实现动态渲染图标教程

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

网络编程(1)写一个简单的UDP网络通信程序【回显服务器】,并且实现一个简单的翻译功能

使用 JAVA 自带的api 目录 一、回显服务器 UdpEchoServer 服务器代码 客户端代码 二、翻译功能 UdpDictServer 在UdpDictServer里重写process方法 一、回显服务器 UdpEchoServer /*** 回显服务器* 写一个简单的UDP的客户端/服务器 通信的程序* 这个程序没有啥业务逻辑&am…

Windows版 CUDA安装

目录 一、说明 二、安装工具下载 三、CUDA安装 四、cuDNN配置 五、验证安装是否成功 一、说明 windows10 版本安装 CUDA &#xff0c;首先需要下载两个安装包 CUDA toolkitcuDNN 官方教程 CUDA&#xff1a;https://docs.nvidia.com/cuda/cuda-installation-guide-micro…

1.4.1 着色器

着色器&#xff08;Shader&#xff09;是运行在GPU上的小程序&#xff0c;这些小程序为图形渲染管线的某个特定部分而运行&#xff0c;从基本意义上来说&#xff0c;着色器只是一种把输入转化为输出的程序。 一、着色器类QOpenGLShaderProgram QOpenGLShaderProgram是Qt中对着…

[WTL/Win32]_[初级]_[如何设置ListView的列宽不出现水平滚动条]

场景 开发WTL/Win32的程序时&#xff0c;经常会用到表格控件CListViewCtrl。这个控件需要设置列的宽度&#xff0c;当用完100%的宽度来平均分配给列宽时&#xff0c;一加载数据多&#xff0c;就会出现垂直滚动条后&#xff0c;水平滚动条也会同时出现的问题。怎么设置才能让水…

标题:深入了解 ES6 模块化技术

在 ES6 版本之前&#xff0c;JavaScript 一直缺乏一个内置的模块系统&#xff0c;这给大型项目的开发带来了一些挑战。ES6 引入了模块化的概念&#xff0c;为 JavaScript 开发者提供了一种更好的组织和管理代码的方式。 模块是 JavaScript 的一种代码组织方式&#xff0c;它将代…

【Python】输出一个 Python 项目下需要哪些第三方包

方法一 pycharm 方法二 要分析一个 Python 项目下需要哪些第三方包并生成 requirements.txt 文件&#xff0c;你可以使用 pipreqs 工具。以下是具体的步骤&#xff1a; 首先&#xff0c;确保你已经安装了 pipreqs 工具。如果未安装&#xff0c;可以使用以下命令进行安装&a…

Python包管理工具 pip 及其常用命令和参数用法

目录 PIP 主要功能 安装包 升级包 卸载包 列出包 检查依赖 pip的配置和环境 主要用法 1&#xff1a;版本 2&#xff1a;安装 Python 库 3&#xff1a;升级库 4&#xff1a;卸载库 5&#xff1a;搜索库 6&#xff1a;查看已安装库详细信息 7&#xff1a;只下载库…