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

Reply via email to