Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
In [1]: def func(a, b=[]):
...: if a < 10: b.append(1)
...: return b
...:
In [2]: func(2)
Out[2]: [1]
In [3]: func(2)
Out[3]: [1, 1]
In [4]: func(2)
Out[4]: [1, 1, 1]
Warum wird b nicht jedes mal auf [] zurückgesetzt?
soweit ich weiss wird das [] nur einmal bei script start erstellt (wenn er die funktionen einliest). Nacher nimmt er immer die gleiche instanz. bei immutable objekten kein problem (string,zahlen). Jedoch bei listen verherren
Oh, super zu wissen! Ich arbeite nämlich viel und gern mit default-Werten. Finde das auch etwas ärgerlich. Was ist denn dann der Sinn von yield? *nochmalnachlesenmuss*
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.