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

开发 后端
Python 3.X新增加的一个特性,叫作函数注释 Function Annotations。它的用途虽然不是语法级别的硬性要求,但是顾名思义,它可作为函数额外的注释来用。他的用法也很简单。

[[375846]]

 我在查看python的fixture源码时发现 fixture的方法定义形式如下:

  1. def fixture( 
  2.     fixture_function: Optional[_FixtureFunction] = None, 
  3.     *, 
  4.     scope: "Union[_Scope, Callable[[str, Config], _Scope]]" = "function"
  5.     params: Optional[Iterable[object]] = None, 
  6.     autouse: bool = False
  7.     ids: Optional[ 
  8.         Union
  9.             Iterable[Union[None, str, floatint, bool]], 
  10.             Callable[[Any], Optional[object]], 
  11.         ] 
  12.     ] = None, 
  13.     name: Optional[str] = None, 
  14. ) -> Union[FixtureFunctionMarker, _FixtureFunction]: 

 我顿时有些凌乱,不知这是什么东东,经过各种网上查找资料,发现这是Python 3.X新增加的一个特性,叫作函数注释 Function Annotations。它的用途虽然不是语法级别的硬性要求,但是顾名思义,它可作为函数额外的注释来用。他的用法也很简单。

在python中定义普通的函数,方法如下:

  1. def f1(a,b): 
  2.     return a+b 

 通过函数注释,方法定义如下:

  1. def f2(a: "str类型参数a", b: "str类型参数b") -> str: 
  2.     print("Annotations:", f2.__annotations__) 
  3.     return a+b 

 其中

  • a: "str类型参数a"代表了对参数a的说明
  • b: "str类型参数b"代表了对参数b的说明
  • -> str:代表了函数的返回值
  • f2.__annotations__查看函数的注释说明

运行 print(f2('aa','bb')),输出:

  1. Annotations: {'a''str类型参数a''b''str类型参数b''return': } 

aabb

那么定义了函数的参数类型和返回值类型我们是否就不可以对其进行修改了呢,让我们做如下尝试:

print(f2(1,2)),输出:

  1. Annotations: {'a''str类型参数a''b''str类型参数b''return': } 

可见, Function Annotations它的作用仅仅是为函数进行注释来用,并不能指定参数类型。

 

责任编辑:姜华 来源: 今日头条
相关推荐

2020-12-16 09:47:01

JavaScript箭头函数开发

2011-05-30 16:11:46

Javascript

2021-03-29 15:32:31

Python函数参数

2023-11-08 14:41:12

Python函数

2021-03-03 10:00:52

Python函数Python基础

2010-11-08 14:47:02

Powershell函数

2009-08-20 10:34:46

C#中声明API函数

2009-07-01 13:54:03

JSP注释

2010-02-22 16:51:03

Python 解析器

2021-09-22 08:47:09

Windows 11操作系统微软

2024-03-04 22:35:07

Currying类型函数

2021-06-28 08:01:57

JS 函数表达式函数声明

2024-02-22 12:18:16

Python函数用法

2020-02-17 10:34:04

箭头函数开发 JavaScript

2020-02-11 14:14:52

this函数

2023-03-09 16:39:23

Python传递参数

2009-12-24 14:30:56

VB.NET

2021-03-27 10:54:34

Python函数代码

2010-03-11 11:07:37

Python函数参数

2021-02-06 10:27:45

C#函数参数
点赞
收藏

51CTO技术栈公众号