首页 > 技术文章 > python 函数对象

luo-mao 2016-10-09 16:52 原文

在展开之前,我们先提一下lambda函数。可以利用lambda函数的语法,定义函数。lambda例子如下:

func = lambda x,y: x + y
print func(3,4)


函数可以作为一个对象,进行参数传递。函数名(比如func)即该对象。比如说:

def test(f, a, b):
    print 'test'
    print f(a, b)

test(func, 3, 5)

test((lambda x,y: x**2 + y), 6, 9)

map()是Python的内置函数。它的第一个参数是一个函数对象。

re = map((lambda x: x+3),[1,3,5,6])

re = map((lambda x,y: x+y),[1,2,3],[6,7,9])
filter
def func(a): if a > 100: return True else: return False print filter(func,[10,56,101,500])
 

reduce()函数

reduce函数的第一个参数也是函数,但有一个要求,就是这个函数自身能接收两个参数。reduce可以累进地将函数作用于各个参数。如下例:

print reduce((lambda x,y: x+y),[1,2,5,7,9])
reduce()函数在3.0里面不能直接用的,它被定义在了functools包里面,需要引入包


推荐阅读