def A(func):
def B(*args, **kwargs):
try:
fun(*args, **kwargs)
except:
print('A')
return B
@A
def fun(x):
return x
fun(a)
python的装饰器为什么没有捕获到NameError异常,代码如下,请各位大神指导一下,不胜感激!!!
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Yajun-Z 2019-04-22 14:15关注
因为在装饰器执行之前异常已经引发了,a没定义,你传递给谁都会报错(这里是会把a传装饰器的),根本到不到执行的那一步
解决 无用评论 打赏 举报