Python Typing模块
Python Typing模块
常用类型
类型 | 说明 |
---|---|
int,long,float | 整型,长整形,浮点型 |
bool,str | 布尔型,字符串类型 |
List, Tuple, Dict, Set | 列表,元组,字典, 集合 |
Iterable,Iterator | 可迭代类型,迭代器类型 |
Generator | 生成器类型 |
后三行需要从typing模块进行导入
类型别名
# 别名
vector = List[float]var: vector = [1.1, 2.2]
# 等价写法
var: List[float] = [1.1, 2.2]
Callable
# 最简单的函数
def print_name(name: str):print(name)# Callable 作为函数返回值使用,其实只是做一个类型检查的作用,看看返回值是否为可调用对象
def get_name_return() -> Callable[[str], None]:return print_name
Any
def legacy_parser(text):...return data# 上述写法等价于下述写法
# 所有没有返回类型或参数类型的函数将隐式默认使用 Anydef legacy_parser(text: Any) -> Any:...return data
Union
联合类型
Union[int, str] 表示既可以是 int,也可以是 str
vars: Union[int, str]
# 等价于
vars: [int or str]
Optional
和默认参数其实没啥实质上的区别,只是写法不同
def foo_func(arg: Optional[int] = None):print(arg)
Optional[] 里面只能写一个数据类型