有如下函数定义,执行结果正确的是?
def dec(f): n = 3 def wrapper(*args,**kw): return f(*args,**kw) * n return wrapper @dec def foo(n): return n * 2
def test1(func): def wrapper(*args, **kwargs): print('before test1 ...') func(*args, **kwargs) print('after test1 ...') return wrapper #返回内层函数的引用 def test2(func): def wrapper(*args, **kwargs): print('before test2 ...') func(*args, **kwargs) print('after test2 ...') return wrapper #返回内层函数的引用 @test2 @test1 def add(a, b): print(a+b) add(1, 2) #正常调用add 输出: before test2 ... before test1 ... 3 after test1 ... after test2 ...图片理解(参考知乎姜小白):