Dlaczego argumenty inne niż domyślne nie są zgodne z argumentami domyślnymi?

Dlaczego ten fragment kodu rzuca błąd SyntaxError?

  >>> def fun1(a="who is you", b="True", x, y):
...     print a,b,x,y
... 
  File "<stdin>", line 1
SyntaxError: non-default argument follows default argument

Podczas gdy następujący fragment kodu działa bez widocznych błędów:

>>> def fun1(x, y, a="who is you", b="True"):
...     print a,b,x,y
... 

questionAnswers(4)

yourAnswerToTheQuestion