Python闭包定义
闭包是指当函数定义了一个内部函数时,这个内部函数使用了外部函数的变量(非全局变量)且外部函数的返回值是内部函数的引用,那么这个函数就被认为是一个闭包。
print('------------case1----------')
def a(x):
x+=2
def b(y):
print(y)
return ('等于%s!'%(y+x))
return b
f=a(2) #x=x+2=4
print(f(6)) #6赋值给了y
print('------------case2----------')
def a():
def b():
print('第一个功能')
print('第二个功能')
return b #为什么返回b函数不用加括号?
x = a()
print(x()) #这个x到底是什么? 获取的是函数a内b的返回值,返回值为None
print(type(x)) #x的就是一个function类型?
print('------------case3----------')
def a(c):
def b():
print('第一个功能')
c()
print('第二个功能')
return b
def c():
print('附加功能')
x = a(c) #为什么a里面要有个c,这个c是什么意思?
print(x())
下面是运行结果:
|