Parámetros opcionales en las funciones de Python y sus valores predeterminados [duplicado]

Posible duplicado:
"Menos asombro" en Python: El argumento predeterminado mutable

Estoy un poco confundido acerca de cómo funcionan los parámetros opcionales en las funciones / métodos de Python.

Tengo el siguiente bloque de código:

>>> def F(a, b=[]):
...     b.append(a)
...     return b
...
>>> F(0)
[0]
>>> F(1)
[0, 1]
>>>

Por quéF(1) devoluciones[0, 1] y no[1]?

Quiero decir,lo que sucede dentro?

Respuestas a la pregunta(2)

Su respuesta a la pregunta