2010/5/20 John Arbash Meinel <john.arbash.mei...@gmail.com>: > Giampaolo Rodolà wrote: >>>>> class A: >> ... def echo(self, x): >> ... return x >> ... >>>>> a = A() >>>>> a.echo() >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> 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? >> > > Because you wouldn't want to have > > A.echo() > > Say that it takes 1 argument and (-1 given) ? > > John > =:-> > >
I see that as a different error type: what you're doing there is calling a method of a class which you haven't instantiated in the first place. Actually the error message returned in this other case is not very clear as well: "unbound method echo() must be called with A instance as first argument (got nothing instead)" It talks about "arguments" while no arguments are actually involved in the problem: just a class I forgot to initialize. --- Giampaolo http://code.google.com/p/pyftpdlib http://code.google.com/p/psutil _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com