Function arguments

brasse thebrasse at gmail.com
Mon Jan 26 04:34:10 EST 2009


On Jan 26, 10:11 am, Chris Rebert <c... at rebertia.com> wrote:
> On Mon, Jan 26, 2009 at 1:03 AM, brasse <thebra... at gmail.com> wrote:
> > Hello!
>
> > Is there any way that I can get at all the arguments passed to a
> > function as a map without using keyword arguments?
>
> > def foo(a, b, c):
> >    # Can I access all the arguments in a collection somewhere?
>
> You can use positional arguments:
>
> def foo(*args):
>     print args
>
> foo("a", "b", "c") #==> ["a", "b", "c"]
>
> Though if you explained your situation more, the newsgroup could
> probably be of greater help.
>

This is an abbreviated version of what I am doing now:

def make_data(**kw):
    '''
    make_data(foo='123', bar=42, time=time.time())
    '''
    template = '%(foo)s - %(bar)d - %(time)s'
    kw['time'] = time.strftime('%c', kw['time']
    return template % kw

This works, but the function signature doesn't say much about
arguments I should pass to it. What I would like to do is something
like this:

def make_data(foo, bar time):
    template = '%(foo)s - %(bar)d - %(time)s'
    args = magic_get_args_function()
    args['time'] = time.strftime('%c', args['time']
    return template % args

I hope this should clear things up a bit. :-)

:.:: mattias



More information about the Python-list mailing list