Re: Python 2.5: wrong number of arguments given in TypeError forfunction argument aggregation (dicti

Discussion in 'Python' started by M.-A. Lemburg, Oct 31, 2008.

  1. On 2008-10-31 00:18, John Krukoff wrote:
    > On Fri, 2008-10-31 at 08:55 +1000, James Mills wrote:
    >> What you have discovered is not a bug :)
    >>
    >> cheers
    >> James
    >>

    >
    > Are you sure? It looks like his complaint isn't that it doesn't work,
    > but that the error message is misleading.
    >
    > With the setup:
    >
    > Python 2.5.2 (r252:60911, Sep 22 2008, 12:08:38)
    > [GCC 4.1.2 (Gentoo 4.1.2 p1.1)] on linux2
    > Type "help", "copyright", "credits" or "license" for more information.
    >>>> def foo( a, b, c ):

    > ... pass
    > ...
    >
    > Compare the error messages from:
    >
    >>>> foo( **{ 'a' : 1, 'c' : 3 } )

    > Traceback (most recent call last):
    > File "<stdin>", line 1, in <module>
    > TypeError: foo() takes exactly 3 non-keyword arguments (1 given)
    >
    > to the error message here:
    >
    >>>> foo( **{ 'a' : 1, 'b' : 3 } )

    > Traceback (most recent call last):
    > File "<stdin>", line 1, in <module>
    > TypeError: foo() takes exactly 3 non-keyword arguments (2 given)


    The (n given) notice refers to the number of keyword parameters
    you specified in the call that could be associated with a
    non-keyword arguments of the function.

    I agree that this is a bit misleading.

    Please open a bug report on python.org.

    > Is it even possible to get an error message in terms of required keyword
    > arguments? I seem to remember seeing a note about keyword only arguments
    > recently...


    You probably saw PEP 3102:

    http://www.python.org/dev/peps/pep-3102/

    That has a somewhat different focus though: it allows defining
    keyword-only arguments, ie. ones that cannot be used as
    both non-keyword parameter and keyword parameter (like we
    have in Python 2.x).

    --
    Marc-Andre Lemburg
    eGenix.com

    Professional Python Services directly from the Source (#1, Oct 31 2008)
    >>> Python/Zope Consulting and Support ... http://www.egenix.com/
    >>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
    >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/

    ________________________________________________________________________

    :::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,MacOSX for free ! ::::


    eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
    Registered at Amtsgericht Duesseldorf: HRB 46611
     
    M.-A. Lemburg, Oct 31, 2008
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Ron Croonenberg
    Replies:
    0
    Views:
    341
    Ron Croonenberg
    Dec 30, 2009
  2. Ron Croonenberg
    Replies:
    0
    Views:
    539
    Ron Croonenberg
    Dec 30, 2009
  3. Ron Croonenberg
    Replies:
    0
    Views:
    478
    Ron Croonenberg
    Dec 30, 2009
  4. Terry Reedy
    Replies:
    1
    Views:
    414
    Carl Banks
    May 26, 2010
  5. Gnarlodious
    Replies:
    9
    Views:
    1,877
    Gnarlodious
    May 16, 2011
Loading...

Share This Page