[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

AltStyle によって変換されたページ (->オリジナル) /