I have a script that reads a variable number of fields from an input file and pass them to a function as arguments. For example:
file 1 with fields: A,B a
Read the fields (arguments) into a list and then use argument unpacking:
function(*fields)
Below is a demonstration:
>>> def func(*args):
... return args
...
>>> fields = ["A", "B", "C"]
>>> func(*fields)
('A', 'B', 'C')
>>> fields = ["A", "B", "C", "D"]
>>> func(*fields)
('A', 'B', 'C', 'D')
>>>
you should use args and kwargs like this:
def foo(*args, **kwargs):
pass
in this way you can get positional and named parameters, args should be a list of values, holding the positional arguments, kwargs should be a dictionary, its keys the argument name with its value