def A(func):def B(*args, **kwargs):try:fun(*args, **kwargs)except:print('A')return B@Adef fun(x):return xfun(a)
因为在装饰器执行之前异常已经引发了,a没定义,你传递给谁都会报错(这里是会把a传装饰器的),根本到不到执行的那一步