Calling a function with unknown number of parameters Python
In python, we can pass an unknown amount of arguments into the function using asterisk notation.
Let's try to create a function
sum_up() with an unknown number of arguments.
def sum_up(*args): s = 0 for i in args: s += i return s
As you see, an argument with an asterisk before will collect all arguments given to this function inside a tuple called
We can call this function that way:
sum_up(5, 4, 6) # Gives 15
But if we want to sum up elements of a list and we need to pass it into the function as arguments...
We can try the following:
l = [5, 4, 6] sum_up(l)
This won't give an effect we need:
sum_up will look like
([5, 4, 6],).
To do what we want, we need to put an asterisk before the argument we're passing:
sum_up(*l) # Becomes sum_up(5, 4, 6)
All you need to do is collect all arguments you want to pass in a list and then put an asterisk before this list passed as an argument inside a call:
args = [service ['good '] , tip ['average']] ctrl.Rule(*args)