typing-类型检查 2018/11/16
typing-类型检查
1.1.typing
作用:
类型检查,防止运行时出现参数和返回值类型不符合。
作为开发文档附加说明,方便使用者调用时传入和返回参数类型。
该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒。
传入参数:
通过“参数名:类型”的形式声明参数的类型;
返回结果:
通过"-> 结果类型" 的形式声明结果的类型。
说明:
调用时候参数类型不正确pycharm会有提醒,但不会影响程序的运行。
“-> List[str]”, 规定返回的是列表,并且元素是字符串。
typing常用类型:
int, long, float: 整型, 长整形, 浮点型;
bool, str: 布尔型,字符串类型;
List, Tuple, Dict, Set:列表,元组,字典, 集合;
Iterable, Iterator:可迭代类型,迭代器类型;
Generator:生成器类型;
2.实例1:
from typing import List, Tuple, Dict
def fun1(a0:int,s0:str,f0:float,b0:bool)->Tuple[List,Tuple,Dict,bool]:
list1 = list(range(a0))
tup1 = (a0, s0, f0,b0)
dict1 = {s0: f0}
b1 = b0
return list1, tup1, dict1, b1
print(fun1(5, "KeyName", 2.3, False))
# ([0, 1, 2, 3, 4], (5, 'KeyName', 2.3, False), {'KeyName': 2.3}, False
实例2:
from typing import List
def func(a: int,b: str) -> List[int or str]:# 使用or关键字表示多种类型
list1 = []
list1.append(a)
list1.append(b)
return list1
实例3:
import typing
T=typing.TypeVar('T',int,float,str)
def foo(name:T)->str:
return str(name)
print(foo(2.012))
实例4:
NewId=typing.NewType('NewId',int)
type(NewId)#
b=NewId(22)
type(b)#