How to access args as a list?
no.email at please.post
Sun Apr 4 00:58:43 CEST 2010
Suppose I have a function with the following signature:
def spam(x, y, z):
Is there a way to refer, within the function, to all its arguments
as a single list? (I.e. I'm looking for Python's equivalent of
Perl's @_ variable.)
I'm aware of locals(), but I want to preserve the order in which
the arguments appear in the signature.
My immediate aim is to set up a simple class that will allow me to
iterate over the arguments passed to the constructor (plus let me
refer to these individual arguments by their names using an
instance.attribute syntax, as usual).
The best I have managed looks like this:
def __init__(self, x, y, z):
self.__dict__ = OrderedDict(())
for p in inspect.getargspec(_Spam.__init__).args[1:]:
self.__dict__[p] = locals()[p]
but rolling out inspect.getargspec for this sort of thing looks to
me like overkill. Is there a more basic approach?
P.S. this is just an example; the function I want to implement has
more parameters in its signature, with longer, more informative
More information about the Python-list