Ciekawy przykład znalazłeś, gdyż w pajtonie przyjmujemy, że jeśli przypisujemy wartość domyślną do jednego argumentu, to każdy następny też musi być domyślny. Poniższa funkcja:
def foo(a=6,b):
return a*b
Wygeneruje błąd o treści: SyntaxError: non-default argument follows default argument
A co do pytania:LINK