python中的类型注解

目录

一.类型注解

变量的类型注解

类型注解的语法

类型注解主要功能在于:

函数方法的类型注解

函数(方法)形参进行类型注解

函数(方法)返回值进行类型注解

 小结

Union类型

小结


python中的类型注解_第1张图片

 

一.类型注解

变量的类型注解

思考

python中的类型注解_第2张图片

为什么PyCharm工具能够做到这一点?它是如何知道这个对象有append方法?

Python在3.5版本的时候引入了类型注解,以方便静态类型检查工具,IDE等第三方工具类型注解:在代码中涉及数据交互的地方,提供数据类型的注解(显式的说明)。主要功能:

  • 帮助第三方IDE工具(如PyCharm)对代码进行类型推断,协助做代码提示
  • 帮助开发者自身对变量进行类型注释

支持

  • 变量的类型注解
  • 函数(方法)形参列表和返回值的类型注解

类型注解的语法

为变量设置类型注解基础语法:变量:类型

演示

#基础数据类型注解
var_1:int =10
var_2:float=1.2341
var_3:bool=True
var_4:str="sdgwar"
#类对象类型注解
class student:
    pass
stu:student=student()
#基础容器类型注解
my_list:list=[1,2,3,4]
my_tuple:tuple=(1,2,3)
my_set:set={1,2,3}
my_dict:dict={"asdg":123}
my_str:str="qweta"
#容器类型详细注解
my_list1:list[int]=[1,2,3,4]
my_tuple1:tuple[int,str,bool]=(1,"sdf",True)
my_set1:set[int]={1,2,3}
my_dict1:dict[str,int]={"asdg":123}

除了使用变量:类型,这种语法做注解外,也可以在注释中进行类型注解。语法:

# type:类型

演示

#基础数据类型注解
var_1=12#type:int
var_2=2.234#type:float
class student:
    pass
stu=student()#type:student

为变量设置注解,显示的变量定义,一般无需注解:

python中的类型注解_第3张图片

 如图,就算不写注解,也明确的知晓变量的类型,一般,无法直接看出变量类型之时会添加变量的类型注解

类型注解主要功能在于:

  • 帮助第三方IDE工具(如PyCharm)对代码进行类型推断,协助做代码提示
  • 帮助开发者自身对变量进行类型注释(备注)

并不会真正的对类型做验证和判断。
也就是,类型注解仅仅是提示性的,不是决定性的

小结

1.什么是类型注解,有什么作用?
在代码中涉及数据交互之时,对数据类型进行显式的说明,可以帮助:

  • PyCharm等开发工具对代码做类型推断协助做代码提示
  • 开发者自身做类型的备注

2.类型注解支持:

  • 变量的类型注解
  • 函数(方法)的形参和返回值的类型注解

3.变量的类型注解语法

  • 语法1:变量:类型
  • 语法2:在注释中,# type:类型4.注意事项

4.注意事项
·类型注解只是提示性的,并非决定性的。数据类型和注解类型无法对应也不会
导致错误

函数方法的类型注解

函数(方法)形参进行类型注解

python中的类型注解_第4张图片

 

如图所示:
·在编写函数((方法),使用形参data的时候,工具没有任何提示·在调用函数(方法),传入参数的时候,工具无法提示参数类型这些都是因为,我们在定义函数(方法)的时候,没有给形参进行注解

函数和方法的形参类型注解语法:

 python中的类型注解_第5张图片python中的类型注解_第6张图片

 

函数(方法)返回值进行类型注解

同时,函数(方法)的返回值也是可以添加类型注解的。语法如下:

 小结

1.函数(方法)可以为哪里添加注解?
形参的类型注解
返回值的类型注解
2.函数(方法)的类型注解语法?

注意,返回值类型注解的符号使用:->

Union类型

思考

python中的类型注解_第7张图片

 遇到这种混合的类型该怎么办呢?

使用Union[类型,......,类型]可以定义联合类型注解

python中的类型注解_第8张图片

小结

 1.什么是Union类型?
使用Union可以定义联合类型注解
2.Union的使用方式
·导包: from typing import Union
·使用: Union[类型,......类型]

 python中的类型注解_第9张图片

 

你可能感兴趣的:(python,类型注解,笔记)