python typing库介绍

typing介绍

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

Python的typing包是从Python 3.5版本引入的标准库,它提供了类型提示和类型注解的功能,用于对代码进行静态类型检查和类型推断。typing模块中定义了多种类型和泛型,以帮助开发者代码的可读性、可维护性和可靠性。

Python的typing库是用于支持类型提示(type hints)的库。类型提示是一种在编程中标注数据类型的做法,它有助于提高代码的可读性和可维护性,同时也可以帮助开发工具进行类型检查和自动补全等功能。

在Python中,类型提示可以通过在函数或方法签名中使用typing库中的类型注释来实现。例如,可以使用IntVar来标注一个变量应该是一个整数,使用List来标注一个变量应该是一个列表,等等。这些类型注释可以帮助开发人员更好地理解代码中各个变量的类型,并且在需要时可以进行类型检查,以确保代码的正确性。

除了类型注释,typing库还提供了一些特殊的功能,例如TypeVar和Generic。TypeVar可以用于定义类型变量,以便在类型提示中使用。而Generic则可以用于创建通用的数据类型,例如列表和字典等。

总之,Python的typing库是用于支持类型提示的库,它可以帮助开发人员更好地理解代码中的类型信息,提高代码的可读性和可维护性,同时也可以帮助开发工具进行类型检查和自动补全等功能。

typing常用类型
以下是typing包中常用的类型和泛型。

注意,int, float,bool,str, bytes不需要import typing,Any,Union,Tuple等需要import typing

基本类型:
int: 整数类型
float: 浮点数类型
bool: 布尔类型
str: 字符串类型
bytes: 字节类型
Any: 任意类型
Union: 多个类型的联合类型,表示可以是其中任意一个类型
Tuple: 固定长度的元组类型
List: 列表类型
Dict: 字典类型,用于键值对的映射
泛型:
Generic: 泛型基类,用于创建泛型类或泛型函数
TypeVar: 类型变量,用于创建表示不确定类型的占位符
Callable: 可调用对象类型,用于表示函数类型
Optional: 可选类型,表示一个值可以为指定类型或None
Iterable: 可迭代对象类型
Mapping: 映射类型,用于表示键值对的映射
Sequence: 序列类型,用于表示有序集合类型
Type:泛型类,用于表示类型本身

示例

1

from typing import List, Tuple, Dict

def fun1(a0: int, s0: str, f0: float, b0: bool) -> Tuple[List, Tuple, Dict, bool]:
    list1 = list(range(a0))
    tup1 = (a0, s0, f0, b0)
    dict1 = {s0: f0}
    b1 = b0
    return list1, tup1, dict1, b1

def fun2(a0, s0, f0, b0):
    list1 = list(range(a0))
    tup1 = (a0, s0, f0, b0)
    dict1 = {s0: f0}
    b1 = b0
    return list1, tup1, dict1, b1

print(fun1(5, "KeyName", 2.3, False))


print(help(fun1))
"""
Help on function fun1 in module __main__:
fun1(a0: int, s0: str, f0: float, b0: bool) -> Tuple[List, Tuple, Dict, bool]
"""

print(help(fun2))
"""
Help on function fun2 in module __main__:
fun2(a0, s0, f0, b0)
"""

2

from typing import List
 
def func(a: int,b: str) -> List[int or str]:# 使用or关键字表示多种类型
    list1 = []
    list1.append(a)
    list1.append(b)
    return list1

l = func(3, "aa")
print(l) # [3, 'aa']

原文出处:
链接: link

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值