another newbie question: why should you use "*args" ?
Diez B. Roggisch
deets at nospam.web.de
Wed Jan 31 06:57:56 EST 2007
stef wrote:
>
> why should I use *args,
> as in my ignorance,
> making use of a list (or tupple) works just as well,
> and is more flexible in it's calling.
> So the simple conclusion might be: never use "*args",
> or am I overlooking something ?
Yup. For example decorators, that wrap functions. If you do that, you want
to return a function that captures all passed arguments, does something,
and then invokes the original function with the original arguments. Like
this:
def logging_decorator(f):
def _f(*args, **kwargs):
print "calling %r with (%r, %r)", % (f, args, kwargs)
return f(*args, **kwargs)
return _f
@logging_decorator
def im_just_a_function(some, argument, and, other=None):
pass
Diez
More information about the Python-list
mailing list