[Python-Dev] Re: More informative error messages

Nick Coghlan ncoghlan at iinet.net.au
Wed Oct 8 10:11:19 EDT 2003


Guido van Rossum strung bits together to say:
> For better or for worse, the distinction between a function and a
> bound method is gone by the time it's called, and recovering that
> difference is going to be tough.  Not in terms of serious overhead,
> but in terms of serious changes to code that is already extremely
> subtle.  That code it's so subtle *because* we want to keep function
> call overhead as low as possible, and anything that would add even a
> fraction of a microsecond to the cost of calling a function with the
> correct number of arguments will be scrutinized to death.

Given this, perhaps a simple addition to the error string might be enough to 
help reduce confusion:

-------------
TypeError: foo() takes exactly 1 argument (2 given). (Note: For bound methods, 
the argument count includes the object the method is bound to)
-------------

Experienced users are unlikely to care, and newer users should then be able to 
figure out why the argument count is one more than they expect. About the only 
problem I can see is that it is hard to be clear, without also making the error 
string rather long (like the one above).

Regards,
Nick.
It's simple, but if it works. . .

-- 
Nick Coghlan           |              Brisbane, Australia
ICQ#: 68854767         |               ncoghlan at email.com
Mobile: 0409 573 268   |   http://www.talkinboutstuff.net
"Let go your prejudices,
               lest they limit your thoughts and actions."




More information about the Python-Dev mailing list