大家都知道python是一门动态类型的语言,但作者Guido van Rossum在2014年创建PEP-484添加了类型提示,在python3.5的版本中正式发布这一特性。 为什么需要类型提示呢?它能给开发者带来哪些便利呢?本文就小说一把type hints。
我们需要它么?
显然,type hints不是必须的,要不也不会再3.5中才加入,但反过来想想,既然能作为标准库发布,肯定是有必要的。
1. 代码更易读
def example_without_typehints(heads, request_data,
user_id=None,
as_json=False):
"""
正常函数实例
:param heads: 协议头
:param request_data: 请求数据
:param user_id: 用户id
:param as_json: 是否作为json数据发送
:return:
"""
这是一个典型的函数,刚开始写时,知道heads是一个字符串,request_data定义的是一个dict,user_id是一个int,as_json是一个bool值,它会返回dict数据。
但当你过上一个月,二个月再来看时,你还确定这个函数如何调用么?需要看下函数体了吧。
def example_with_typehints(heads: str,
request_data: Optional[Dict[str, str]],
user_id: Optional[int] = None,
as_json: bool = True) -> Dict:
"""
typehints实例
:param heads: 协议头
:param request_data: 请求数据
:param user_id: 用户id
:param as_json: 是否作为json数据发送
:return: {
'code': 200,
'msg': ''
}
"""
看看这个,有了类型提示,参数类型和返回值一目了然。
请记住,代码是给人看的,看代码的频率比写代码的频率高得多,易读很重要。
2. 调用时类型匹配提示
当在函数调用时,如果传入的参数与类型不匹配,IDE会给出警告提示
3. 库函数提示
如果指定了对应的类型,IDE会给出此类型的库函数,高效输入
上述可见,加入类型提示对于代码的易读性是很有必要的,如果使用IDE,编码效率会进一步提升,错误率也会降低。
但是
type hints 只是类型提示,不会做类型检查
不要期望运行时报错噢