[Python-ideas] Showing qualified names when a function call fails

Sven R. Kunze srkunze at mail.de
Fri Oct 28 17:36:58 EDT 2016


Great idea!


Another issue I encounter regularly are things like:

 >>> func(mylist[i], mylist2[j])

IndexError: list index out of range


So, which are the list and index that cause the error?


On 25.10.2016 00:07, Ryan Gonzalez wrote:
> I personally find it kind of annoying when you have code like this:
>
>
> x = A(1, B(2, 3))
>
>
> and Python's error message looks like this:
>
>
> TypeError: __init__() takes 1 positional argument but 2 were given
>
>
> It doesn't give much of a clue to which `__init__` is being called. At all.
>
> The idea: when showing the function name in an error like this, show the
> fully qualified name, like:
>
>
> TypeError: A.__init__() takes 1 positional argument but 2 were given
>
>
> This would be MUCH more helpful!
>
>
> Another related change would be to do the same thing in tracebacks:
>
>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "<stdin>", line 2, in __init__
> AssertionError
>
>
> to:
>
>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "<stdin>", line 2, in MyClass.__init__
> AssertionError
>
>
> which could make it easier to find where exactly an error originated.
>
> --
> Ryan (ライアン)
> [ERROR]: Your autotools build scripts are 200 lines longer than your
> program. Something’s wrong.
> http://kirbyfan64.github.io/
>
>
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>



More information about the Python-ideas mailing list