More informative error messages (Re: [Python-Dev] Efficient predicates for the standard library)

Phillip J. Eby pje at telecommunity.com
Tue Oct 7 11:44:50 EDT 2003


At 01:33 PM 10/7/03 +1300, Greg Ewing wrote:
>While we're on the subject of error messages, I'd like to
>point out another one that could be improved. Often one
>sees things like
>
>   TypeError: foo() takes exactly 1 argument (2 given)
>
>In the case where foo() is a method of some class, and there
>are various versions of foo() defined in various superclasses,
>it's sometimes hard to tell exactly *which* foo it was trying
>to call. It would be much more useful if the module and
>class names were included in the error message, e.g.
>
>   TypeError: MyStuff.SomeClass.foo() takes exactly 1 argument (2
>given)

AFAICT, this would at least require a compiler change, and a change to the 
layout of code objects, so that a code object would know its "dotted name".


>The same goes for function names quoted in the traceback.

Don't tracebacks give line number and file?




More information about the Python-Dev mailing list