类型注解-type hint

目录

一、基本介绍

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:
    pass

cat: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类型是str
    2、在调用方法/函数时,传入的实参类型是不一致的,则给出黄色警告
"""
def fun1(name: str):
    for ele in name:
        print(ele)

fun1("tom")
# 接收两个整数,返回整数
"""
    1、a:int,b:int  对形参a和b进行类型注解,标注a,b的类型是int
    2、->int  对返回值进行类型注解,标注返回值的类型是int
"""
def fun2(a:int,b:int)->int:
    return a+b

print(f"结果是:{fun2(10,20)}")

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

def fun2(a:int,b:int)->int:
    return a+b

print(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+num2

print(f"结果是:{cal(10,20.5)}")

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值