Hallo,
Die Doku kenne ich
Die sagt aber auch nur das es so ist und nicht warum oder wie man das überhaupt macht.
Wie bereits gesagt, wenn eine Funktion aufgerufen wird, dann wird ein Aktivierungsblock mit den Übergabeparametern, lokalen Variablen usw. auf dem Stack angelegt. verlässt man die Funktion wird der Aktivierungsblock vom Stack abgeräumt. Man könnte jetzt sagen, dass Listen auf dem Heap angelegt werden, aber auch dann müsste der RC nach dem verlassen der Funktion bei 0 sein und die Liste abgeräumt werden.
Das wirft ja durchaus auch Fragen des Speichermanagement auf, wer geht schon davon aus, dass noch was im Speicher rumliegt, das es eigentlich im Programm gar nicht mehr gibt?
Was ich mich also frage ist:
1. Wie machen Python das?
2. (Viel wichtiger) Warum macht Python das?
Für mich ist das alles in allem irgendwie ein ziemlich "unlogisches" Feature.