为什么Python引发参数需要解包?

时间:2013-12-15 07:28:55

标签: python python-2.7 exception-handling

在此代码中,引发的异常是元组exc_info返回的描述。

from sys import exc_info
a, b, c = exc_info()
raise a, b, c

在下一个代码中,引发的异常是一个新异常而不是来自exc_info

的异常
from sys import exc_info
raise exc_info()

区别仅在于拆开元组,为什么发送“a,b,c”不是元组? (通常会这样) 这是怎么回事?

使用2.7

1 个答案:

答案 0 :(得分:1)

这是因为raise a,b,traceback表示raise a(b)在Python 2中使用traceback的行号。请参阅this questionraise statement documentationraise (a,b,c)不同;它会引发由abc组成的元组。