I’ve been looking at passing arrays, or lists, as Python tends to call them, into a function.
I read something about using *args, such as:
def someFunc(*args) for x in args print x
But not sure if this is right/wrong. Nothing seems to work as I want. I’m used to be able to pass arrays into PHP function with ease and this is confusing me. It also seems I can’t do this:
def someFunc(*args, someString)
As it throws up an error.
I think I’ve just got myself completely confused and looking for someone to clear it up for me.
When you define your function using this syntax:
def someFunc(*args): for x in args print x
You’re telling it that you expect a variable number of arguments. If you want to pass in a List (Array from other languages) you’d do something like this:
def someFunc(myList = , *args): for x in myList: print x
Then you can call it with this:
items = [1,2,3,4,5] someFunc(items)
You need to define named arguments before variable arguments, and variable arguments before keyword arguments. You can also have this:
def someFunc(arg1, arg2, arg3, *args, **kwargs): for x in args print x
Which requires at least three arguments, and supports variable numbers of other arguments and keyword arguments.