On Jan 26, 10:11 am, Chris Rebert <c...@rebertia.com> wrote: > On Mon, Jan 26, 2009 at 1:03 AM, brasse <thebra...@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 -- http://mail.python.org/mailman/listinfo/python-list