Showing qualified names when a function call fails
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/
participants (10)
-
Chris Angelico
-
Chris Barker
-
Michel Desmoulin
-
Nathaniel Smith
-
Neil Girdhar
-
Nick Coghlan
-
Paul Moore
-
Ryan Gonzalez
-
Steven D'Aprano
-
Sven R. Kunze