闭包
1. 两个函数的嵌套,外部函数返回内部函数的引用,外部函数一定有参数
2. 外部参数可以在内存中存留,跟函数的区别
3. 闭包的主要场景是与装饰器一起使用
4. 闭包中外部函数中变量的引用地址不可直接修改,如果内部函数需要修改使用nonlocal
例:记录方法执行次数
def out_func(data):
def in_func():
pass
return in_func
* 简单例子
"""简单闭包实现---汇率计算"""
def set_func(rate):
def call_func(money):
print(rate * money)
return call_func
count_usa = set_func(0.7)
count_jp = set_func(100)
count_usa(1000) # print --> 700
count_jp(1000) # print -->1000,00