高阶函数
高阶函数:
可以把函数作为参数传入,这样的函数叫做高阶函数。
高阶函数除了可以接受函数作为参数外,还可以把函数作为返回值。
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
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号