Search code examples
pythonfunctionargumentsargs

accessing *args from within a function in Python


Hi everyone this is probably something extremely simple that i'm overlooking but can someone point me in the right direction for how to handle this problem.

def nodeFunction(self,*args):
    return self[1] + self[2]    

Basically what I am trying to do is grab the data passed in through the arguments. I am just stuck on the syntax for referencing the arguments inside the function when using *args.


Solution

  • args is simply a tuple:

    def nodeMethod(self, *args):
        return args[0], args[1]
    

    Is that what you mean?

    Note that there's nothing special about "args". You could use any variable name. It's the * operator that counts.

    >>> class Node(object):
    ...     def nodeMethod(self, *cornucopia):
    ...         return cornucopia[0], cornucopia[1]
    ... 
    >>> n = Node()
    >>> n.nodeMethod(1, 2, 3)
    (1, 2)
    

    Still, "args" is the most idiomatic variable name; I wouldn't use anything else without a good reason that would be obvious to others.