闭包的定义及使用

 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

猜你喜欢

转载自www.cnblogs.com/monsterhy123/p/12900469.html