变量的类型注解
使用场景:变量的类型无法确定时
限制:类型注解只是提示,不能限制变量的类型,不会导致程序报错
语法:
变量:类型
① 基础数据类型
a:int = 1
b:float = 2.0
c:str = "123"
b:bool = False
② 类对象类型
class Ex:
pass
ex:Ex=Ex()
③ 基础容器类型注解
mylist:list =[1,2]
mytuple:tuple = (1,2)
myset:set = {1,2}
mydict:dict = {"12":12}
④ 容器类型详细注解
注意:
元组类型时,要将每个元素的类型都标记出来。
字典类型时,需要2个类型,第一个为key,第二个为value
mylist:list[int] =[1,2]
mytuple:tuple[float,int,bool] = (1.0,2,False)
myset:set[int] = {1,2}
mydict:dict[str,int] = {"12":12}
还有一种变量类型注解方式,利用注释来实现
a = 1 # type: int
b = [1,2] # type: list
函数的类型注解
类型注释都是提示型的,不是强制性的
形参的类型注解
def Funtion(var1: type, var2: type):
pass
返回值的类型注解
def F() -> type: # 在括号后面加上 -> type,type为返回值的类型
return 类型为type的变量
联合类型注解
Union
变量
当变量可能多种类型或包含多种类型时:
mylist=[1,2.0,False]
mydict={'name': 'Liu', 'age': 23}
需要使用Union类型来完成注解,Union[type1,type2]代表可能为里面类型的其中一个
from typing import Union
var: Union[int, float] = 1.0
mylist: list[Union[int, float, bool]]=[1,2.0,False]
mydict: dict[str, Union[str, int]]={'name': 'Liu', 'age': 23}
函数
形参与返回值都可以
def F(var: Union[int, float]) -> Union[int, str]:
pass
使用 ‘|’
变量
当变量可能多种类型或包含多种类型时:
from typing import Union
var: int|float = 1.0
mylist: list[int|float|bool]=[1,2.0,False]
mydict: dict[str, str|int]={'name': 'Liu', 'age': 23}
函数
形参与返回值都可以
def F(var: int|float) -> int|str:
pass