Python之匿名函数

python中用lamdba关键字来表示匿名函数。

    格式:

    # x是形参, y是返回值
    func = lamdba x: y

    关键字lamdba表示匿名函数,冒号前面的x表示函数参数,后面的y表示匿名函数的返回值。

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

    tmpList2 = filter(lambda x: (x % 2 == 1), range(10))
    print(list(tmpList2))

    用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:

    f = lamdba x: x * x
    print(5)
    # 返回<function <lambda> at 0x101c6ef28>
    print(f(5))
    # 返回25

    同样,也可以把匿名函数作为返回值返回,比如:

    def build(x, y):
        return lambda: x * x + y * y