python进阶-高阶函数
一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数
map:传入的函数作用于传入的list的每一个值,形成一个新的list
reduce:传入的函数依次作用于list的每一个值,得到一个返回值
filter:接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list
sorted:排序
返回函数:
>>> x = f() # 调用f() call f()... >>> x # 变量x是f()返回的函数: <function g at 0x1037bf320> >>> x() # x指向函数,因此可以调用 call g()... # 调用x()就是执行g()函数定义的代码
内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)
装饰器:
定义了一个函数,想在运行时增加动态功能,又不想改动函数本身的代码
def f1(x):
return x*2
def new_fn(f):
def fn(x):
print 'call' + f.__namne__ + '()'
return f(x)
return fn
python中内置了@语法就是为了简化装饰器调用
@new_fn def f1(x):
def f1(x): ===== return x*2
return x*2 f1 = new_fn(f1)

浙公网安备 33010602011771号