Python类型注释
-
基本类型注释
# 变量名后面用 ":" 表示类型注释
string_val :str = ""
int_val :int = 0
float_val :float = 0.0
dic_val :dict = dict()
list_val :list = list()
tuple_val :tuple = tuple() -
函数形参&结果注释
# 形参名后面用 ":" 表示类型注释,输出结果用 "->" 表示类型注释
def test(arg1:str, arg2:int, arg3:str=None)->list:
pass -
typing模块
-
介绍
# typing模块是python3.5之后引入的,是python内置库,旨在提供更方便,更强大的类型注释功能。
-
基本typing注释
from typing import List, Tuple, Dict, Union, Optional, Callable, Iterable
list_val :List[str] = list() # 列表,列表值是字符串
tuple_val :Tuple[int,str] = tuple() # 元组,第一个值是int,第二个值str
dict_val :Dict[str,int] = dict() # 字典,键是str,值是int
union_val:Union[str,int,None] = None # 这个值是str或int或None
opt_val : Optional[str] = None # Optional[X] is equivalent to Union[X, None].
callable_val :Callable # 可调用对象,即可以加"()"执行。
iter_val:Iterable # 可迭代对象
# 带"[]"的类型注释,可以随意组合,得到想要的类型注释。 -
类名注释
# 自定义的类也可以认为是一种类型,可以用来做注释
# 举例:
from typing import List
class Test:
pass
obj :Test = Test() # 表示obj是Test类创建的实例
obj_list :List[Test] = [] # 表示obj是由Test类的实例组成的列表
# 当实例是 动态生成的 或 存在于嵌套的数据结构中 时,不写类名注释往往会失去代码提示,使用实例属性和方法时,麻烦且容易出错。
-