扫码关注官方订阅号
被Python的匿名函数lambda搞得一头雾水。 一直都是用def来创建函数的,最近又看到很多lambda来申明函数的,不知道这二者的用途有什么区别。 def创建的函数是可以多次调用的,而lambda却不可以,那么,为什么有时候要使用lambda呢? 他创建的函数而且很难读懂耶。。。
闭关修行中......
基本上lambda适用于一些临时性的,小巧的函数。比如作为一些参数传递给其他函数(类似callback) 比如itertools模块的ifilter函数
def ifilter(predicate, iterable): # ifilter(lambda x: x%2, range(10)) --> 1 3 5 7 9 if predicate is None: predicate = bool for x in iterable: if predicate(x): yield x
这里的predicate就可以传递一个lambda函数进去,如果专门为此用一个def来定义函数,显得代码不够简介小巧,而lambda正合此意。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
基本上lambda适用于一些临时性的,小巧的函数。比如作为一些参数传递给其他函数(类似callback)
比如itertools模块的ifilter函数
def ifilter(predicate, iterable): # ifilter(lambda x: x%2, range(10)) --> 1 3 5 7 9 if predicate is None: predicate = bool for x in iterable: if predicate(x): yield x这里的predicate就可以传递一个lambda函数进去,如果专门为此用一个def来定义函数,显得代码不够简介小巧,而lambda正合此意。