typing模块
typing模块
文章目录
- typing模块
- 一、引入
- 二、typing模块的作用
- 三、typing模块的常用方式
- 说明:
- typing支持可能的多种类型
- 四、typing常用的类型:
一、引入
- 前言:很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度,加上Python本身就是一门强类型动态语言,这种现象就变得更加的严重,而typing这个模块很好的解决了这个问题。
- 注意:typing模块只有在python3.5以上的版本中才可以使用,pycharm目前支持typing检查
二、typing模块的作用
- 类型检查,防止运行时出现参数和返回值类型不符合。
- 作为开发文档附加说明,方便使用者调用时传入和返回参数类型。
- 该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒。
三、typing模块的常用方式
代码示例:
from typing import List, Tuple, Dict
def add(a: int, string: str, f: float, b: bool) -> Tuple[List, Tuple, Dict, bool]:
l1 = list(range(a))
tup = (string, string, string)
d = {"a": f}
b1 = b
return l1, tup, d, b1
if __name__ == '__main__':
print(add(5, "淘小欣", 119.2, False))
'''
([0, 1, 2, 3, 4], ('派大星', '派大星', '派大星'), {'a': 119.2}, False)
'''
说明:
-
在传入参数时通过”
参数名:类型
”的形式声明参数的类型; -
返回结果通过”
-> 结果类型
”的形式声明结果的类型。 -
在调用的时候如果参数的类型不正确pycharm会有提醒,但不会影响程序的运行。
-
对于如list列表等,还可以规定得更加具体一些,如:”-> List[str]”,规定返回的是列表,并且元素是字符串。
现在对上面代码进行修改,可以看到pycharm背景变黄色区域,就是错误类型提醒:
typing支持可能的多种类型
-
由于python天生支持多态,迭代器中的元素可能有多种。
from typing import List, Tuple, Dict def add(string: str, f: float, b: bool or str, a: int = 90) -> Tuple[List, Tuple, Dict, str or bool]: list1 = list(range(a)) tup = (string, string, string) d = {"a": f} bl = b return list1, tup, d, bl if __name__ == '__main__': print(add('淘小欣', 183.1, False, 5)) print(add('淘小欣', 183.1, 'False', 5)) #运行结果(跟不用typing无异): ''' ([0, 1, 2, 3, 4], ('淘小欣', '淘小欣', '淘小欣'), {'a': 183.1}, False) ([0, 1, 2, 3, 4], ('淘小欣', '淘小欣', '淘小欣'), {'a': 183.1}, 'False') '''
ps:使用or关键字表示多种类型
四、typing常用的类型:
- int、long、float: 整型、长整形、浮点型
- bool、str: 布尔型、字符串类型
- List、 Tuple、 Dict、 Set:列表、元组、字典、集合
- Iterable、Iterator:可迭代类型、迭代器类型
- Generator:生成器类型