[Python-ideas] Improving this? - foo() takes at least 6 arguments (6 given)

Eli Stevens (Gmail) wickedgrey at gmail.com
Sat Sep 3 10:59:57 CEST 2011


On Thu, Sep 1, 2011 at 10:19 AM, Ethan Furman <ethan at stoneleaf.us> wrote:
>> Colleague:  "So my code is apparently asking for 6 arguments and it
>> appears that I gave it 6 arguments"
>> Me:  "Oh that - Yeah... your short one.  It really wants 7.."
>
> How did you get this?

Having seen this bite someone recently, I have an example readily at hand:

>>> def f(a,b,c,d=None): pass
...
>>> f(1,2,d=4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: f() takes at least 3 arguments (3 given)

The mention of self might be a bit of a red herring, since unless
there's another way to generate the same error message, the error
really is "f() takes at least 3 arguments (2 given, plus 1 keyword
argument not counted here)".

Cheers,
Eli



More information about the Python-ideas mailing list