1.什么是类型注解,有什么作用?
在代码中涉及数据交互之时,对数据类型进行显式的说明,可以帮助:
PyCharm等开发工具对代码做类型推断协助做代码提示
开发者自身做类型的备注
2.类型注解支持:
变量的类型注解
函数(方法)的形参和返回值的类型注解
3.变量的类型注解语法
语法1: 变量: 类型
语法2: 在注释中,# type: 类型
4.注意事项
类型注解只是提示性的,并非决定性的。数据类型和注解类型无法对应也不会导致错误
示例代码:
import json
import random
# 基础数据类型注解
var_1: int = 10
var_2: str = "itheima"
var_3: bool = True
# 类对象类型注解
class Student:
pass
stu: Student - Student()
# 基础容量类型注解
my_list: list = [1, 2, 3]
my_tuple: tuple = (1, 2, 3)
my_dict: dict = {"小米": 666}
# 容量类型详细注解
my_list: list[int] = [1, 2, 3]
my_tuple: tuple[int, str, bool] = (1, "小米", True)
my_dict: dict[str, int] = {"小米": 666}
# 在注释中进行类型注解
var_1 = random.randint(1, 10) # type:int
var_2 = json.loads({"name": "zhangsan"}) # type:dict
def func():
return 10
var_3 = func() # type:int
如图所示:
在编写函数(方法),使用形参data的时候,工具没有任何提示
在调用函数(方法),传入参数的时候,工具无法提示参数类型
这些都是因为,我们在定义函数(方法)的时候,没有给形参进行注解
# 对形参进行类型注解
def add(x:int, y:int):
return x + y
同时,函数(方法)的返回值也是可以添加类型注解的。
语法如下:
代码示例:
# 对返回值进行类型注解
def func(data:list) -> list:
return data
总结:
代码示例:
# 使用Union类型,必须先导包
from typing import Union
my_list: list[Union[int, str]] = [1, 2, "xiaomai" "IT"]
# 在变量注解、函数(方法)形参和返回值注解中,
def func(data: Union[int, str]) -> Union[int, str]:
pass
func()