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)

posted @ 2018-01-24 16:29  哈利波波特  阅读(12)  评论(0)    收藏  举报