[Python-Dev] Reasons behind misleading TypeError message when passing the wrong number of arguments to a method (original) (raw)
Giampaolo Rodolà g.rodola at gmail.com
Thu May 20 11:49:02 CEST 2010
- Previous message: [Python-Dev] Reasons behind misleading TypeError message when passing the wrong number of arguments to a method
- Next message: [Python-Dev] Reasons behind misleading TypeError message when passing the wrong number of arguments to a method
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2010/5/20 John Arbash Meinel <john.arbash.meinel at gmail.com>:
Giampaolo Rodolà 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? 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
- Previous message: [Python-Dev] Reasons behind misleading TypeError message when passing the wrong number of arguments to a method
- Next message: [Python-Dev] Reasons behind misleading TypeError message when passing the wrong number of arguments to a method
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]