前言
typing 是在 python 3.5 才有的模块
前置学习
常用类型提示:
Python - typing 模块 —— 常用类型提示_eli的博客-
Any Type
- 一种特殊的类型是 Any
- 静态类型检查器会将每种类型都视为与 Any 兼容,将 Any 视为与每种类型兼容
小栗子
# Any
from typing import Any
a = None # type: Any
a1 = [] # OK
a2 = 2 # OK
s = '' # type: str
s1 = a # OK
def foo(item: Any) -> int:
# Typechecks; 'item' 可以是任意类型
print(item)
return 1
foo(a)
foo(a1)
foo(a2)
foo(s)
foo(s1)
隐式使用 Any
def legacy_parser(text):
...
return data
# 上述写法等价于下述写法
# 所有没有返回类型或参数类型的函数将隐式默认使用 Any
def legacy_parser(text: Any) -> Any:
...
return data
Union
Optional
Python - typing 模块 —— Optional_eli的博客