*args - argument unpacking
**kwargs - keyword argument unpacking
Первый вариант распаковывает iterable в аргументы определенном порядке функции
А вот распаковывается mapping в аргументы по ключевым словам
**kwargs - keyword argument unpacking
Первый вариант распаковывает iterable в аргументы определенном порядке функции
args = (1, 2, 3) # usually a tuple, always an iterable* f(*args) → f(1, 2, 3)
А вот распаковывается mapping в аргументы по ключевым словам
kwargs = {"a": 1, "b": 2, "c": 3} # usually a dict, always a mapping*
f(**kwargs) -> f(1, 2, 3) # if you have `def f(a=0, b=0, c=0)`