[Python-Dev] Reasons behind misleading TypeError message when passing the wrong number of arguments to a method (original) (raw)

geremy condra debatem1 at gmail.com
Thu May 20 02:15:43 CEST 2010


On Wed, May 19, 2010 at 4:42 PM, Giampaolo Rodolà <g.rodola at gmail.com> wrote:

class A: ...     def echo(self, x): ...             return x ... a = A() a.echo() Traceback (most recent call last):  File "", line 1, in TypeError: echo() takes exactly 2 arguments (1 given)

I bet my last 2 cents this has already been raised in past but I want to give it a try and revamp the subject anyway. Is there a reason why the error shouldn't be adjusted to state that 1 argument is actually required instead of 2? --- Giampaolo

Because it actually does take two arguments (self and x) and it only got one (self).

I understand the confusion (and was bitten by it myself when I was a newbie) but the interpreter is only telling you the truth.

Geremy Condra



More information about the Python-Dev mailing list