Os argumentos podem ser definidos como posicionais :
def func1(*args):
return args
>>> func1(1, 2, 3)
(1, 2, 3)
Ou como * palavra-chave *:
def func2(**kwargs):
return kwargs
>>> func2(one=1, two=2, three=3)
{'three': 3, 'two': 2, 'one': 1}
Você também pode fazer ambos ao mesmo tempo:
def func3(*args, **kwargs):
print(args)
print(kwargs)
>>> func3(1, 2, a=3, b=4)
(1, 2)
{"a": 3, "b": 4}