在python中使用注解函数
目录
最近在看aiohttp的源码,发现一种没有见过的定义函数写法def __enter__(self) -> None
,函数后面还跟着一个->
,这让一个以前受过C指针伤害过的人来说整个人都不好了,于是查了一下这个带箭头的用法,这里的->
的指针没有半毛钱关系。
这里的箭头其实是一种注解的写法,他是为了告诉调用者这个函数返回什么内容,如下面的代码
|
|
这告诉使用者,这个函数会返回一个int类型的值。 虽然在函数注解里虽然指定了返回一个int类型的值,但是我们知道在python 的返回值里可以返回任意类型的值,我们依然可以不按照注解来返回一个str类型的值
|
|
这里写虽说不会报语法错误,可是谁看都会骂街,你既然告诉了你的使用者说你要返回一个int类型的值,可是你自己却给人家返回一个str类型的值,这都是不符合规范的。在使用pyCharm编辑器时,就会显示一个警告
Expected type ‘int’, got ‘str’ instead
对于函数的参数也可以使用注解
函数的参数也可以使用注解,用来告诉使用者需要传哪种类型的参数,方法是在参数后面加上一个冒号:
|
|
同样还是那个问题,你可以约束,但是我也可以不遵守,你让我传一个int,我偏要传一个str,语法上不会报错,但是会报一个警告
注意上面的注解写法是在python3才有的,如果在python2下运行会报语法错误!

- 文章标题: 在python中使用注解函数
- 本文链接: https://www.yangyanxing.com/article/function_annotations_in_python.html
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。