当前位置: 首页 > 科技观察

Python中的函数注解:参数带冒号,声明后有--箭头

时间:2023-03-14 09:32:25 科技观察

查看pythonfixture源码时,发现fixture的方法定义如下:deffixture(fixture_function:可选[_FixtureFunction]=无,*,范围:“联合[_范围,可调用[[str,配置],_范围]]”=“函数”,参数:可选[可迭代[对象]]=无,自动使用:布尔=假,ids:Optional[Union[Iterable[Union[None,str,float,int,bool]],Callable[[Any],Optional[object]],]]=None,name:Optional[str]=None,)->Union[FixtureFunctionMarker,_FixtureFunction]:我突然有点乱,不知道是什么东西。在网上查了资料,发现这是Python3.X新增的一个特性,叫做FunctionAnnotations。虽然它的使用在语法层面并不是硬性要求,但顾名思义,它可以作为函数的附加注释。他的用法也很简单。在python中定义一个普通的函数,方法如下:deff1(a,b):returna+b通过函数注解,方法定义如下:deff2(a:"str类型参数a",b:"str类型参数b")->str:print("Annotations:",f2.__annotations__)returna+b其中a:"str类型参数a"代表参数a的描述b:"str类型参数b"代表参数a的描述parameterb->str:表示函数的返回值f2.__annotations__查看函数的注解runprint(f2('aa','bb')),output:Annotations:{'a':'strtypeparametera','b':'strtypeparameterb','return':}aabb然后定义函数的参数类型和返回值类型,能不能不修改,我们试试看:print(f2(1,2)),output:Annotations:{'a':'str类型参数a','b':'str类型参数b','return':}可见FunctionAnnotations的作用只是为了注释函数Use,不能指定参数类型。