时间:2020.12.14
环境:Python3
目的:闭包学习
说明:
作者:Zhong QQ交流群:121160124 欢迎加入
什么是闭包?
在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包。
首先通过一个示例先来了解函数引用的概念:
def test1():
print("This is test1")
# 调用函数
test1()
# 引用函数
res = test1
print(id(res))
print(id(test1))
# 通过引用调用函数
res()
以上代码运行输出:
This is test1
2278949777616
2278949777616
This is test1
res与引用的函数test1 id相同 说明res只是引用了test1 而不是copy了一个函数 它们其实是同一个函数 就像一个人可以有两个或多个不同的名字
一个闭包的实例
# 定义一个函数
def outer(a):
def inner(b):
print("in inner 函数, b is %d" % b)
return a+b
# 其实这里