Python学习札记(二十五) 函数式编程6 匿名函数

参考:匿名函数

NOTE

1.Python对匿名函数提供了有限的支持。

eg.

#!/usr/bin/env python3

def main():
	lis = list(map(lambda x: x*x, [1, 2, 3, 4, 5]))
	print(lis)

if __name__ == '__main__':
	main()
sh-3.2# ./lambda1.py 
[1, 4, 9, 16, 25]

可以看出,lambda相当于函数:

def func(x):
	return x*x

2.关键字lambda表示匿名函数,冒号前面的x表示函数参数。

可以参考这篇博客:Python中lambda表达式学习

3.匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。

4.用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突

5.匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数.

#!/usr/bin/env python3

def main():
	f = lambda x: x*x
	print(f(int(input())))

if __name__ == '__main__':
	main()
sh-3.2# ./lambda2.py 
9
81
sh-3.2# ./lambda2.py 
100
10000

6.同样,也可以把匿名函数作为返回值返回。(意义不明)

def func(x, y):
	return lambda: x*y

2017/2/18

posted @ 2017-02-18 20:14  Wasdns  阅读(192)  评论(0编辑  收藏  举报