码迷,mamicode.com
首页 > 其他好文 > 详细

高阶函数

时间:2016-09-23 23:06:50      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

 

高阶函数:

  可以把函数作为参数传入,这样的函数叫做高阶函数。

  高阶函数除了可以接受函数作为参数外,还可以把函数作为返回值。

 

def func(a,b,c):
  return c(a)+c(b)
print(func(-3,4,abs))

#7

 

把函数做为返回值:

def func(*args):
  def sum():
    a = 0
    for i in args:
      a += i
      return a
  return sum

x=func(1,2,3)
print(x)
print(x())

<function func.<locals>.sum at 0x00000000006E01E0>
6

 

闭包:

  一个闭包就是你调用了一个函数A,这个函数A返回了一个函数B给你。这个返回的函数B就叫做闭包。

  你在调用函数A的时候传递的参数就是自由变量。

def count():
  fs=[]
  for i in range(1,4):
    def f():
      return i*i
    fs.append(f)
  return fs

f1,f2,f3=count()
print(f1())
print(f2())
print(f3())

 

9
9
9

 

def count1():
  def f(j):
    def g():
      return j*j
      return g
  fs=[]
  for i in range(1,4):
    fs.append(f(i))
  return fs

f1,f2,f3=count1()
print(f1())
print(f2())
print(f3())

 

1
4
9

 

高阶函数

标签:

原文地址:http://www.cnblogs.com/fanxuanhui/p/5901746.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!