满足闭包的三个条件: 1).有外部函数和内部函数这样的结构 2).外部函数中定义的变量被内部函数所使用 3).内部函数对象作为返回值被外部函数返回 演示闭包的定义和使用:
代码语言:javascript复制def outer():
a=10
def inner():
print(a 10)
return inner
i=outer()
i()
print(i,type(i))
强化闭包的使用: 案例1:
代码语言:javascript复制def outer():
# count=[0]
count=0
def inner():
nonlocal count
# count[0] =1
count =1
print('hello,hank,%s haha'%count)
return inner()
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)