为什么python异常通常不会打印违规值?

Ale*_*lex 12 python exception

例如,考虑一下案例:

>>> a = []
>>> a[12]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)

异常不会打印超出范围的值.

我的猜测是,我们不知道__str__传入的任何函数是否会引发异常,所以我们不接触它?

Eth*_*man 3

该值可以被打印,但事实并非如此。

然而,PyPI 上有一个tb 模块,它实际上会打印堆栈跟踪中变量的值。