2010/5/20 John Arbash Meinel <john.arbash.meinel@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