def f(a,*b):
print(a,b)
f(1,*(2,3))
f(1,2,3)
рассмотрим пример выше, оба будут вызывать одну и ту же функцию одинаково
Теперь, если вы укажите а = 1
f(a=1,2,3)
#or in other syntax
f(2,3,a=1)
тогда возникает двусмысленность относительно того, следует ли учитывать a=1 or a=2
, поскольку 2 - это первый позиционный аргумент, а a=1
- явный аргумент ключевого слова.