KsaneK
KsaneK

Reputation: 135

How to pass list elements as arguments

I want to pass elements of list as function arguments like this:

def foo(a, b, c):
    # do something

list = [1, 2, 3]
foo(list)

I can't use foo(list[0], list[1], list[2]), because I don't know how many elements the list has and how many arguments the function takes.

Upvotes: 13

Views: 14211

Answers (1)

unutbu
unutbu

Reputation: 879651

Use the * argument unpacking operator:

seq = [1, 2, 3]
foo(*seq)

So in the input function you could use

getattr(self, func)(*args)

PS. Don't name your variables list, since it shadows the built-in of the same name.

Upvotes: 19

Related Questions