当前位置: 首页> 科技> 互联网 > 类型注解-type hint

类型注解-type hint

时间:2025/9/10 8:30:29来源:https://blog.csdn.net/2303_80050865/article/details/141225993 浏览次数:2次

目录

一、基本介绍

1、为什么需要类型注解

2、类型注解作用和说明

二、变量的类型注解

1、基本语法

2、基本数据类型注解

3、实例对象类型注解

4、容器类型注解

5、容器详细类型注解

6、在注释中使用注解

三、函数(方法)的类型注解

1、基本语法

2、代码演示

四、Union类型

1、基本介绍

2、基本语法

3、案例演示


参考文档:术语对照表 — Python 3.12.5 文档



一、基本介绍

1、为什么需要类型注解

1)随着项目越来越大,代码也就会越来越多,在这种情况下,如果没有类型注解,很容易不记得某个方法的参数类型是什么

2)一旦传入了错误类型的参数,Python是解释性语言,只有在运行时才能发现问题,这对大型项目来说是一个巨大的灾难

# 对字符串进行遍历
# a:str 给形参a进行类型注解,标注a的类型是str
def fun1(a: str):for ele in a:print(ele)# ctrl+p提示参数时,没有类型提示
# 如果类型传错了,就会出现异常
fun1("100")

2、类型注解作用和说明

自从python3.5开始,引入了类型注解机制,作用和说明如下:

1)类型提示,防止运行时出现参数类型、返回值类型、变量类型不符合

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

3)加入后并不会影响程序的运行,不会报正式的错误,只是提醒

4)pycharm支持类型注解,参数类型错误会黄色提示

二、变量的类型注解

1、基本语法

变量:类型

2、基本数据类型注解

# 基本数据类型注解
n1:int=10
n2:float=10.1
is_pass:bool=True
name:str="jack"

3、实例对象类型注解

# 实例对象类型注解
class Cat:passcat:Cat=Cat()

4、容器类型注解

# 容器类型注解
my_list:list=[100,200,300]
my_tuple:tuple=("run","sing","fly")
my_set:set={"jack","tom","jim"}
my_dict:dict={"no1":"北京","no2":"上海"}

5、容器详细类型注解

# 容器详细类型注解
# 对元素类型进行标注
my_list2:list[int]=[100,200,300]
# 对每一个元素类型进行标注
my_tuple2:tuple[str,str,str,float]=("run","sing","fly",1.1)
# 对元素类型进行标注
my_set2:set[str]={"jack","tom","jim"}
# 对元素类型进行标注 dict[str,int] key为str,value为int
my_dict2:dict[str,int]={"no1":100,"no2":200}

6、在注释中使用注解

基本语法

# type:类型

# 在注释中使用注解
n3=89.9  # type:float
my_list3=[100,200,300]  # type:list[int]
email="cx@qq.com"  # type:str

三、函数(方法)的类型注解

1、基本语法

def 函数/方法名(形参名:类型,形参名:类型...)->返回值类型:

        函数/方法体

2、代码演示

# 对字符串进行遍历
"""解读:1、name:str 对形参name进行类型注解,标注name类型是str2、在调用方法/函数时,传入的实参类型是不一致的,则给出黄色警告
"""
def fun1(name: str):for ele in name:print(ele)fun1("tom")
# 接收两个整数,返回整数
"""1、a:int,b:int  对形参a和b进行类型注解,标注a,b的类型是int2、->int  对返回值进行类型注解,标注返回值的类型是int
"""
def fun2(a:int,b:int)->int:return a+bprint(f"结果是:{fun2(10,20)}")

说明:类型注解是提示性的,并不是强制性的,如果你给的类型和指定/标注的类型不一致,PyCharm检测到会给出黄色警告,但是仍然可以运行

def fun2(a:int,b:int)->int:return a+bprint(f"结果是:{fun2(10.1,20)}")

四、Union类型

文档:typing —— 对类型提示的支持 — Python 3.12.5 文档

1、基本介绍

1)Union类型可以定义联合类型注解

2)在变量、函数(方法)都可以使用Union联合类型注解

3)使用的时候,需要先导入Union:from typing import Union

2、基本语法

Union[类型,类型...]

比如:联合类型:Union[X,Y]等价于X|Y,意味着满足X或Y之一

3、案例演示

# 如果要使用Union类型注解,则需要导入Union
from typing import Union# 联合类型注解,a可以是int或str
a:Union[int,str]=100# my_list是list类型,元素可以是int或str
my_list:list[Union[int,str]]=[100,200,300,"tim"]# 函数/方法使用联合类型注解
# 接收两个数(可以是int/float),返回数(int/float)
def cal(num1:Union[int,float],num2:Union[int,float])->Union[int,float]:return num1+num2print(f"结果是:{cal(10,20.5)}")

关键字:类型注解-type hint

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: