Python - typing 模块 —— Any Type
前言
typing 是在 python 3.5 才有的模块
前置学习
Python 类型提示:https://www.cnblogs.com/poloyy/p/15145380.html
常用类型提示
https://www.cnblogs.com/poloyy/p/15150315.html
类型别名
https://www.cnblogs.com/poloyy/p/15153883.html
NewType
https://www.cnblogs.com/poloyy/p/15153886.html
Callable
https://www.cnblogs.com/poloyy/p/15154008.html
TypeVar 泛型
https://www.cnblogs.com/poloyy/p/15154196.html
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
https://www.cnblogs.com/poloyy/p/15170066.html
Optional
https://www.cnblogs.com/poloyy/p/15170297.html