1 """ 2 1.什么是闭包? 3 闭包其实就是一个函数 4 2.如何创建闭包? 5 a.要有函数嵌套(外部函数,内部函数) 6 b.内部函数中要使用外部函数的变量 7 c.外部函数必须有一个返回值,返回内部函数名 8 3.如何使用闭包? 9 f = funOut(100) # 调用外部函数,用 f 变量指向内部函数 10 result = f(200) # 通过变量调用函数 11 """ 12 # 使用闭包,完成求两个数的和 13 def sum(a,b): 14 return a + b 15 16 """ 17 定义闭包,满足三条件 18 def funout(num1): 19 def funIn(num2): 20 return num2 + num1 21 return funIn #返回一个函数,函数也是一个变量 22 """ 23 def funout(num1): 24 def funIn(num2): 25 #内部函数修改外部函数的变量 26 nonlocal num1 #修改外部函数变量加nolocal 27 num1 += 100 28 return num2 + num1 29 return funIn #返回一个函数,函数也是一个变量 30 31 f = funout(100) #此时f 和 funIn 均指向内部函数 32 # 当前变量 f 指向函数 33 print(type(f)) # <class 'function'> 34 35 #当前变量 f 指向内部函数,可以通过 f 调用这个内部函数 36 result = f(200) 37 print('两个数的和:',result)
1 <class 'function'> 2 两个数的和: 400