Python是一种弱类型语言,很多时候我们可能不清楚函数参数类型或者返回值类型。为了方便功城狮阅读源码,所以定义函数的时候同时定义参数的数据类型显得尤为重要。其实这件事情,一些牛人已经帮我们开发好了,我们只需要用,它就是typing包。
-
typing.Any any是一种特殊的类型,它可以代表所有类型,原理类似于object,所有类型都是object的子类。
-
typing.Union union是联合类型,Union[X, Y] 要么是X类型,要么是Y类型
-
typing.Optional optional表示可选的,可以为空或已经声明的类型 Optional[X] 等价于 Union[X, None]
-
typing.Tuple tuple是元组类型,Tuple[int, str, float]
-
typing.Dict dict是字典类型 Dict[str, int] Mapping[str, int]
-
typing.Set set是集合类型 Set[int] AbstractSet[int]
-
typing.TypeVar typevar是自定义兼容特定类型的变量,比如有的变量为int、float、None height = TypeVar('Height', int, float, None)
-
typing.Iterable iterable是可迭代类型
-
typing.Callable callable是可调用对象 Callable[[int], None] 表示接受int类型参数, 返回None的一个函数
-
typing.NewType newtype是创建不同的类型 UserId = NewType('UserId', int)