python的typing模块
python的typing模块
typeing模块在python中提供类型支持,主要功能有:
- 类型检查,防止运行时出现参数和返回值类型不符合
- 作为开发文档附件说明,方便使用者调用时传入和返回参数类型(python在调用函数或变量时,无需对参数或变量进行类型说明,不利于阅读)

使用typing模块,可以对参数类型做注释并检查,不会影响程序运行,不会报正式错误,只有提醒。
# 可以省略,str,int都是Python内置的数据类型
from typing import *
# 创建函数
def digits_sum(num:str) -> int:
digits_arr = map(lambda x: int(x), num)
return sum(digits_arr)
# 测试
num = "352"
result = digits_sum(num=num)
print(result)
# 输出
10
map函数:
map是python的内置函数,会根据提供的函数对指定的序列做映射,第一个参数为函数名,后面的参数是一个或多个可迭代的序列,返回一个新的集合:
map(function,iterable,...)
具体是:将函数作用在序列中的每个元素上,得到一个新的序列,不改变原有序列:
- 例1
def square(x):
return x ** 2
res = map(square,[1,2,3,4,5]) # 返回迭代器
list(res)
# 结果如下:
[1, 4, 9, 16, 25]
- 例2
from typing import Dict, Any
# 创建函数
# d为字典,其key值为str,val为任意类型(Any);输出为字典,key值为str,val值为float或者int
# 可以使用多个数据类型,如使用 or 或 | 分隔多个数据类型
def dict_multipy(d: Dict[str, Any]) -> Dict[str, float or int]:
new_dict = {}
for k, v in d.items():
# isinstance():判断一个函数是否是一个已知的类型,类似 type()
if isinstance(v, (float, int)):
new_dict[k] = v * 2
return new_dict
# 测试
d = {"no": "100", "age": 12, "work_year": 3, "name": "JC"}
new_d = dict_multipy(d=d)
print(new_d)
# 输出
{'age': 24, 'work_year': 6}
- 例3:创建别名或者新的数据类型
from typing import List
# 取List[float]别名为Vector
Vector = List[float]
def scale(scalar: float, vector: Vector) -> Vector:
return [scalar * num for num in vector]
scale(2.0, [1.0, -4.2, 5.4])
# 输出
[2.0, -8.4, 10.8]
lambda 匿名函数:
lambda函数没有函数名,无需定义,直接使用:
lambda 参数,参数,······:表达式
定义:
- 由关键词lamdba修饰
- 冒号之前的是函数参数,可以为空,即无参数匿名函数
- 冒号之后是表达式,无需写return,结果即是输出
- 例子
f = lambda x, y, z: x+y+z
f(1,2,3)
# 输出
6
python的typing模块的更多相关文章
- 25、typing导入Python的数据类型模块、collections集合模块
一.typing模块 1.typing模块的作用 类型检查,防止运行时出现参数和返回值类型不符合. 作为开发文档附加说明,方便使用者调用时传入和返回参数类型. 该模块加入后并不会影响程序的运行,不会报 ...
- python类型检测最终指南--Typing模块的使用
正文共:30429 字 预计阅读时间:76分钟 原文链接:https://realpython.com/python-type-checking/ 作者:Geir Arne Hjelle 译者:陈祥安 ...
- Python - typing 模块 —— 常用类型提示
前言 typing 是在 python 3.5 才有的模块 前置学习 Python 类型提示:https://www.cnblogs.com/poloyy/p/15145380.html 常用类型提示 ...
- python进阶(21)typing模块--类型提示支持
typing介绍 Python是一门弱类型的语言,很多时候我们可能不清楚函数参数的类型或者返回值的类型,这样会导致我们在写完代码一段时间后回过头再看代码,忘记了自己写的函数需要传什么类型的参数,返 ...
- 使用python3的typing模块提高代码健壮性
前言:很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度,加上Python本身就是一门弱类型的语言,这种 ...
- 基于Python的datetime模块和time模块源码阅读分析
目录 1 前言 2 datetime.pyi源码分步解析 2.1 头部定义源码分析 2.2 tzinfo类源码分析 2.3 date类源码分析 2.4 time类源码分析 2.5 timedelta ...
- typing模块
目录 一.引言 二.typing模块的作用 三.使用typing模块 四.typing常用类型 一.引言 前言:很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么 ...
- python3.5以上版本,typing模块提高代码健壮性
一 前言 Python是一门弱类型的语言,很多时候我们可能不清楚函数参数类型或者返回值类型,很有可能导致一些类型没有指定方法,在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数, ...
- typing 模块
目录 typing模块 一.引言 二.typing模块的作用 三.使用typing模块 四.typing常用类型 typing模块 目录 一.引言 二.typing模块的作用 三.使用typing模块 ...
- python之platform模块
python之platform模块 ^_^第三个模块从天而降喽!! 函数列表 platform.system() 获取操作系统类型,windows.linux等 platform.platform() ...
随机推荐
- 基于.NET开源、功能强大且灵活的工作流引擎框架
前言 工作流引擎框架在需要自动化处理复杂业务流程.提高工作效率和确保流程顺畅执行的场景中得到了广泛应用.今天大姚给大家推荐一款基于.NET开源.功能强大且灵活的工作流引擎框架:elsa-core. 框 ...
- 使用 C# 入门深度学习:Pytorch 基础
教程名称:使用 C# 入门深度学习 作者:痴者工良 地址: https://torch.whuanle.cn 1.2 Pytorch 基础 本文内容介绍 Pytorcn 的基础 API,主要是数组的创 ...
- isObjectLike:检查 value 是否是 类对象。 如果一个值是类对象,那么它不应该是 null,而且 typeof 后的结果是 "object"
function isObjectLike(value) { return value != null && typeof value == 'object';}
- nvidia公司的机器人仿真环境的历史发展介绍(Isaac-Gym、Isaac-Sim)
相关: NVIDIA机器人仿真项目 -- Isaac Gym - Preview Release 本文说下NVIDIA公司的机器人仿真项目的一些历史发展. NVIDIA公司的产品最初只有显卡,但是卖着 ...
- 《JavaScript 模式》读书笔记(8)— DOM和浏览器模式1
在本书的前面章节中,我们主要集中关注于核心JavaScript(ECMAScript),而并没有太多关注在浏览器中使用JavaScript的模式.本章将探索一些浏览器特定的模式,因为浏览器是使用Jav ...
- JavaScript是按顺序执行的吗?聊聊JavaScript中的变量提升
作为一位前端开发者,我们经常会听到这么一句话:"JavaScript的执行是按照顺序自上而下依次执行的."这句话说的并没有错.但是它似乎又好像不完全对.我们先来看以下这段代码.你觉 ...
- 12C++循环结构-for循环(2)——教学
一.循环变量为字符型 (第32课 26个兄弟姐妹)参考视频1 试编一程序,按字典顺序输出26个字母. 流程图: 思考:先顺序输出26个小写英文字母,再逆序输出26个大写英文字母. 循环可以是递增型循环 ...
- 鸿蒙应用开发从入门到入行 - 篇3:ArkUI布局基础与制作可交互页面
鸿蒙应用开发从入门到入行 - 篇3:ArkUI布局基础与制作可交互页面 导读:在本篇文章里,您将掌握事件.装饰器.双向绑定等相关知识,并利用所学知识做一个待办列表的案例. 练手案例:登录界面 开始之前 ...
- Http请求报文(请求行,请求头、请求体)
Http请求报文: http请求报文由3部分组成,请求行,请求头,请求体. 一.请求行: 请求方法.URL地址.协议版本 请求方法:POST.GET.DELETE.PUT.HEAD.OPTIONS.T ...
- 实用干货分享(2) - Docker使用操作指南
一.Docker安装部署 1. 安装仓库 执行以下命令,安装Docker所需的包.其中yum-utils提供yum-config-manager工具:device-mapper-persistent- ...