(7)lambda表达式
可以使用 lambda 关键字创建小的匿名函数。此函数返回其两个参数的总和 lambda a, b:a + b
Lambda 函数可以用于任何函数对象。他们在语法上限于单个表达式。语义上,他们都只是正常的函数定义的语法糖。嵌套的函数定义类似,lambda 函数可以从包含范围引用变量。(之后的文章会详细讲解lambda表达式的相关操作)
def make_incrementor1(n):
return lambdax:x+n
f=make_incrementor1(42)
print(f(1))
>>>
=========== RESTART:D:/python/pythonLearning/KeywordArguments.py ===========
43
>>>
(8) Function Annotations函数注解
首先是一个简单的例子
def f(ham:str,eggs:str='eggs2')->str:
print("Annotations:",f.__annotations__)
print("Arguments:",ham,eggs)
return str(ham)+' and ' +eggs
s=f(‘abc’)
print(s)
结果:
>>>
=========== RESTART:D:/python/pythonLearning/KeywordArguments.py ===========
Annotations: {'ham': <class 'str'>,'eggs': <class 'str'>, 'return': <class 'str'>}
Arguments: abc eggs2
abc and eggs2
>>>
函数注解是完全可选的元数据信息,它告诉人们这个函数返回的类型应该是什么类型,函数形参应该是什么类型。但是传入其他类型可能会报错,当然,这并非绝对,只不过是开发者给调用者的一个建议。上面的例子中,即使实参传入数字也是不会报错的。(这段在python3.6帮助文档上的说明看得我很头疼,比较乱,我领会精神写的)
注解存储在 __annotations__ 属性中,以字典的形式存在,对其他部分的功能没有任何影响。
参数注释:在参数名称的后面加一个冒号,其后是期待实参的类型。
返回值注解:函数的参数列表外面,冒号前面,加上一个 –>,后面是期待返回的类型。
下面关于Python的文章您也可能喜欢,不妨参考下:
《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版] 下载见
Ubuntu 14.04安装Python 3.3.5
CentOS 6.5 脚本自动化装 Python2.6升级2.7
《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码]