###类装饰器
class Fun(object):
def __init__(self, func):
self.func = func
def __call__(self, *args, **kwargs):
print("对象()调用")
# 执行原先的函数
self.func()
# Fun() 调用init方法
# 对象() 调用call方法
@Fun # fun1 = Fun(fun1)
def fun1():
print("test")
fun1()
###修改外层的函数值
# 内层函数可以获取外层函数的值
# 修改外层函数的值
num = 1
def set_fun(value):
def call_fun():
nonlocal value # 修改外层函数的值
value += 1
print(value)
global num
num += 1
print(num)
return call_fun
fun = set_fun(123)
fun()
124
2