python3

# 定义一个函数
def test(number):
# 在函数内部再定义一个函数,并且这个函数用到外边函数的变量,
# 那么将这个函数以及用到的一些变量称之为 闭包。
def text_in(number_in):
print('in test in 函数, number_in is %d ' % number_in)
return number + number_in
   # 返回的事text_in函数的引用 (其实就是返回的就是闭包的结果)

return text_in

# 给test函数赋值,这个20 就是给参数number的
ret = test(20)
print(ret) # <function test.<locals>.text_in at 0x00000000025B3840>

# 注意:100其实是给参数number_in的
print(ret(100))

# 闭包 优化了变量,原来需要类对象完成的工作,闭包也可以完成
# 由于闭包引用了外部函数的局部变量,则外部函数的局部变量没有及时释放,消耗内存
 
原文地址:https://www.cnblogs.com/AndyChen2015/p/7404371.html