Python中typing模块

本文介绍了Python中的typing模块,主要用于类型检查和增强代码可读性。typing模块包含类型别名、NewType、泛型支持等功能,如类型别名简化复杂类型签名,NewType创建新类型,泛型支持包括集合类型、抽象基类、Callable、Optional和Tuple等。typing模块的使用能帮助开发者预防类型错误,提升代码质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

typing库

一、 简介

Python是一门弱类型的语言,很多时候我们可能不清楚函数参数类型或者返回值类型,很有可能导致一些类型没有指定方法,在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度,typing模块可以很好的解决这个问题

Python 运行时并不强制标注函数和变量类型。类型标注可被用于第三方工具,比如类型检查器、集成开发环境、静态检查器等

typing的主要作用有:

  1. 类型检查,防止运行时出现参数、返回值类型不符
  2. 作为开发文档附加说明,方便使用者调用时传入和返回参数类型
  3. 模块加入不会影响程序的运行不会报正式的错误,pycharm支持typing检查错误时会出现黄色警告

官方文档:【https://docs.python.org/zh-cn/3/library/typing.html

语法:

def 函数名(参数: 数据类型) -> 返回值类型:
    pass

变量名: 数据类型 =

二、 别名

1、 类型别名

要定义一个类型别名,可以将一个类型赋给别名。类型别名可用于简化复杂类型签名,同时类型别名适用于简化复杂的类型签名

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# @author: A.L.Kun
# @file : test.py
# @time : 2022/5/13 16:54
from typing import Sequence

ConnectionOptions = dict[str, int]  # 表示字典中的键为字符串类型,值为整型
Address = tuple[str, int, ...]  # 表示元组的第一个数据为字符串,第二个数据为整型,里面只能存储两个数据,有省略号表示里面可以添加n个整型数据
Server = tuple[Address, ConnectionOptions]


def broadcast_message(message: str,
                      servers: Sequence[Server]  # 表示一个序列对象里面存储了[tuple[tuple[str, int], dict[str, int]]]
                      ) -> None:  # 返回值为空
    ...

broadcast_message("a", [(("a", 1, 2), {
   "a": 1})])

2、 NewType

使用NewType辅助函数创建不同的类型,静态类型检查器会将新类型视为它是原始数据的子类,相当于C++里面的`typedef

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# @author: A.L.Kun
# @file : test.py
# @time : 2022/5/13 16:54
from typing import NewType

UserId 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码海探幽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值