ACSDN07
Acsdn07
采纳率0%
2019-04-21 01:18

python的装饰器为什么没有捕获到NameError异常,代码如下,请各位大神指导一下,不胜感激!!!

  • python

def A(func):
def B(*args, **kwargs):
try:
fun(*args, **kwargs)
except:
print('A')
return B
@A
def fun(x):
return x
fun(a)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • zhengyajun_email Yajun-Z 2年前

    因为在装饰器执行之前异常已经引发了,a没定义,你传递给谁都会报错(这里是会把a传装饰器的),根本到不到执行的那一步

    点赞 评论 复制链接分享

相关推荐