满足闭包的三个条件:
1).有外部函数和内部函数这样的结构
2).外部函数中定义的变量被内部函数所使用
3).内部函数对象作为返回值被外部函数返回
''' 演示闭包的定义和使用: ''' def outer(): a = 10 def inner(): print(a + 10) return inner i = outer() print(i,type(i)) i() i() outer()()
#强化闭包的使用: #案例1: def outer(): # count = [0] count = 0 def inner(): nonlocal count # count[0] += 1 count += 1 print('hello,老郭,%s,呵呵呵' %count) return inner i = outer() i() i() i() outer()() j = outer() # print(id(i),id(j)) def outer(): num1 = 10 num2 = 20 def inner(num3): print(num1 + num3) print(num2 + num3) return inner i = outer() i(100) outer()(200)