[Python-ideas] Showing qualified names when a function call fails
Ryan Gonzalez
rymg19 at gmail.com
Mon Oct 24 18:07:13 EDT 2016
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/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20161024/750f36d9/attachment-0001.html>
More information about the Python-ideas
mailing list