Python中typing模块的介绍(代码实例)

本篇文章给大家带来的内容是关于Python中typing模块的介绍(代码实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

python是一门弱类型的语言,很多时候我们可能不清楚函数参数类型或者返回值类型,很有可能导致一些类型没有指定方法,typing模块可以很好的解决这个问题。

该模块加入并不会影响程序的运行,不会报正式的错误,只有提醒。

typing模块只有在python3.5以上的版本中才可以使用,pycharm目前支持typing检查

一、typing模块的作用

1、类型检查,防止运行时出现参数和返回值类型不符合的问题。

2、作为开发文档附件说明,方便使用者调用时传入和返回参数类型。

二、typing模块的常用方式

先看实例代码:

from typing import List,Tuple,Dict
def add(a:int,string:str,f:float,b:bool)->Tuple[List,Tuple,Dict,bool]:
    list1=list(range(a))
    tup=(string,string,string)
    d={"a":f}
    bl=b
    return list1,tup,d,bl

if __name__ == '__main__':
    print(add(5,'mark',183.1,False))

运行结果:

([0, 1, 2, 3, 4], ('mark', 'mark', 'mark'), {'a': 183.1}, False)

说明:

  1. 在传入参数时,通过“参数名:类型”的形式声明参数的类型;

  2. 返回结果通过“->结果类型”的形式声明结果的类型

  3. 在调用的时候如果参数的类型不正确pycharm会有提醒,但不会影程序的运行。

  4. 对于如list列表等,还可以规定更加具体一些,如“->List[str]”,规定返回的是列表,并且元素是字符串。

现在对上面代码进行修改,可以看到pycharm背景变黄色区域,就是错误类型提醒:

三、typing常用的类型

  1. int,long,float:整型,长整型,浮点型

  2. bool,str:布尔型,字符串类型

  3. List,Tuple,Dict,Set:列表,元组,字典,集合

  4. Iterable,Iterator:可迭代器,迭代器类型

  5. Generator:生成器类型

四、typing支持可能的多种类型

由于python天生支持多态,迭代器中的元素可能有多种。

代码实例:

from typing import List, Tuple, Dict


def add(a: int, string: str, f: float, b: bool or str) -> Tuple[List, Tuple, Dict, str or bool]:
    list1 = list(range(a))
    tup = (string, string, string)
    d = {"a": f}
    bl = b
    return list1, tup, d, bl


if __name__ == '__main__':
    print(add(5, 'mark', 183.1, False))
    print(add(5, 'mark', 183.1, 'False'))

运行结果(跟不用typing无异):

([0, 1, 2, 3, 4], ('mark', 'mark', 'mark'), {'a': 183.1}, False)
([0, 1, 2, 3, 4], ('mark', 'mark', 'mark'), {'a': 183.1}, 'False')

以上就是Python中typing模块的介绍(代码实例)的详细内容,更多请关注昆居客【www.kunjuke.com】。

相关推荐:

11 天 Claude Fable 5 狂写超 100 万行代码:Rust 重构 JavaScript 运行时 Bun

7 月 11 日消息,开发者贾里德 · 萨姆纳(Jarred Sumner)于 7 月 8 日发布博文,宣布在 Claude Fable 5 模型的帮助下,耗时 11 天、耗费 16.5 万美元,已重构 JavaScript 运行时 Bun,从 Zig 完全重写为 Rust 语言。萨姆纳表示本次重构最主要的原因是提高可靠性,Zig 经常出现内存错误和崩溃,而且很难彻底修复。Rust 则能在编译时捕...

我的世界时间指令代码怎么用2026年

我的世界游戏里面有很多的指令,今天给大家带来了游戏里面的时间指令代码使用方法,还有小伙伴不清楚时间指令代码怎么用,那么下面就是相关的内容. 我的世界时间指令代码使用方法 时间指令是我的世界里面改变当前时间的。 不过首先我们的打开作弊模式,在输入框里面输入/time set day。 就可以调成白天模式,/time set night是调成黑夜模式的指令。 如果输入/time set +时间,就会跳...

曜越推出 Dockpower FI 电源:插拔对接模块设计,升级可仅更换本体

7 月 8 日消息,Thermaltake(曜越,Tt)现已正式推出 Dockpower FI 电源。这一系列产品在现代模组线材电源的基础上更进一步,将单个电源分解为本体和输出面板模块两部分。曜越表示,这一“对接式”设计不仅在后续升级时仅需更换电源本体,也能便利 DIY 装机:用户可先将电源本体固定到机箱上,然后将线材与对接模块在机箱外部连接,最后再把电源本体与对接模块合为一体,避免了在机箱中走线...

曝英特尔 Nova Lake 处理器仅大核显升级 Xe3P,4P0E 模块基于 Intel 18AP

7 月 8 日消息,消息人士 @jaykihn0 近日进一步确认,Intel(英特尔)接下来要推出的 "Nova Lake" 客户端处理器仅有 12Xe“大核显”版本会将 GPU 架构升级到 Xe3P,4Xe 和 2Xe 的“小核显”仍将基于 Xe3 IP。"Nova Lake" 系列预计被称为酷睿 Ultra(第 4 代)。除移动端外英特尔还将推出配备 12Xe3P 的桌面 SKU,甚至还会有仅...

英伟达 CEO 黄仁勋:相比写代码,我的软件工程师们更喜欢搭智能体

7 月 9 日消息,据《商业内幕》今天(9 日)报道,英伟达 CEO 黄仁勋在采访中提到,智能体系统已经成为一项新技能,英伟达目前有许多软件工程师参与智能体开发。“要我说,我的每个软件工程师都更愿意构建智能体,而不是写 Python 代码。”黄仁勋称,AI 让英伟达工程师减少了传统编码工作。在他看来,写代码更像是打字,现在的工程师更多转向构建智能体、设计基准测试和设置安全护栏。工程师要把枯燥工作交...

中际旭创官方回应康宁“玻璃桥”技术影响:并非光模块产品方案替代、公司多元化技术布局可充分适配

7 月 5 日消息,康宁公司在 6 月 24 日举行的“AI 数据中心光通信与互连技术大会”上推出了面向下一代 AI 数据中心架构的玻璃基光互连技术“Glass Bridge(玻璃桥)”,该产品基于玻璃波导技术,用于实现光纤与光子集成电路(PIC)之间的直接光学连接。综合投资者平台信息,中际旭创今天在投资者关系平台上答复投资者关心的问题时,有投资者提问“康宁玻璃桥的推出是否会对公司未来形成利空?”...

付费番剧解限制工具“哔哩漫游”收到B站律师函,GitHub 项目代码已删除

感谢网友 Coje_He、咩咩洋 的线索投递! 7 月 6 日消息,“哔哩漫游(BiliRoaming)”是一个解除B站客户端番剧区域限制的热门 Xposed 模块,还提供一些其他小功能,在 GitHub 上获得了超 11.4K 星标。今日,“哔哩漫游”的 GitHub 项目页面删除了全部代码,README 页面也附上了一份B站律师函。侵权告知函要求“哔哩漫游”开发者立即停止一切侵权行为,包括但不...

让你的代码永存于世,微软 GitHub 推出代码仓库刻录 CD-ROM 实体光盘服务

感谢网友 Skyraver 的线索投递! 7 月 3 日消息,微软旗下的代码托管平台 GitHub 今天宣布推出代码仓库刻录 CD-ROM 实体光盘服务。值得注意的是,GitHub 官方还用一番玩味十足的语气宣发这项服务:我们听到了大家的声音,并表示认同。鉴于近期实体媒介的发展,GitHub 欣然宣布:你现在可以将自己的公开仓库刻录成 CD-ROM 实体光盘。你可以把你的代码收藏起来、借给朋友,或...