python函数原型定义那行有个箭头是什么语法?比如

Python012

python函数原型定义那行有个箭头是什么语法?比如,第1张

这是函数注解,Python 3.x引入,它的特点有

对函数的参数进行类型注解,以冒号标记

对函数的返回值进行类型注解,以箭头标记

只对函数参数或返回值做一个辅助的说明,并不对函数参数或返回值进行类型检查

提供给第三方工具,做代码分析,发现隐藏bug

函数注解的信息,保存在__annotations__属性中

注解本身是一个字典类型的数据

你的程序我帮你完善了(函数注解部分的解释见注释),你看看吧

from typing import List

def f(a) -> List[dict]: #函数注解,返回一个字典列表,但是它不对返回值类型进行检查

 print(a)  #打印字典

 return [a] #返回字典列表

print(f.__annotations__) #打印函数注解

l={'Name': 'Zara','Age':17} #把字典传入函数

print(f(l)) #打印函数返回值

源代码(注意源代码的缩进)

python中的注释有多种,有单行注释,多行注释,批量注释,中文注释也是常用的。

一、python单行注释符号(#):井号(#)常被用作单行注释符号,在代码中使用#时,它右边的任何数据都会被忽略,当做是注释。print 1 #输出1,#号右边的内容在执行的时候是不会被输出的。

二、批量、多行注释符号:在python中也会有注释有很多行的时候,这种情况下就需要批量多行注释符了。多行注释是用三引号''' '''包含的。

python正则表达式的注释方法:学过正则都知道,那简直是天书,为了提高正则的可读性,正则表达式中提供了X(VERBOSE): 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。

Python:

是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。

相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。

->:标记返回函数注释,信息作为.__annotations__属性提供,__annotations__属性是字典。键return是用于在箭头后检索值的键。但是在Python中3.5,PEP 484 - Type Hints附加了一个含义:->用于指示函数返回的类型。它似乎也将在未来版本中强制执行。

eg:

def test() ->[1, 2, 3, 4, 5]:

pass

print(test.__annotations__)

输出:

{'return': [1, 2, 3, 4, 5]}