闭包的定义及使用

 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
正是江南好风景
原文地址:https://www.cnblogs.com/monsterhy123/p/12900469.html