Say Ich habe eine Funktion foo, die eine Liste baz nimmt, und in foo wollte ich baz klar wie so:Python Pointer Mehrdeutigkeit
baz = []
foo(baz)
foo(baz):
baz = []
Nun ist dieser Code nicht tun, was ich würde es tun möchte, , weil es eine neue lokale Liste namens baz erstellt. Ich weiß, dass es andere Möglichkeiten gibt, dies zu tun, aber ich möchte Python wissen Zweideutigkeiten wie diese löst, wo die Anweisung
baz = []
als zu sagen Python interpretiert werden, um die äußere Umfang baz Variable auf einen neuen leeren Brocken Punkt oder um einen neuen Zeiger zu erstellen, der auf einen leeren Speicherbereich zeigt.
EDIT
Bitte beachten Sie, dass ich nicht zu fragen, wie eine Liste zu löschen. Ich frage nach dem Verhalten des Python-Interpreters. Bitte lesen Sie die Frage klar vor dem Abstimmen.
Nun, ich weiß, wie die Liste zu löschen. Ich habe gerade del foo [:] Ich habe mich gefragt, wie der Python-Dolmetscher eine solche Situation sieht. –
Die Zuweisung wird immer als lokale Variable interpretiert, es sei denn, Sie verwenden das Schlüsselwort 'global'. Sie haben jedoch den Parameter 'baz' benannt, so dass Sie nicht auf den globalen' baz' verweisen dürfen. Python-Variablen sind nicht wie C-, Java-Variablen. Sehen Sie sich dieses großartige Gespräch an: https://www.youtube.com/watch?v=_AEJHKGk9ns –
Sie können das Verhalten des Interpreters sehen, indem Sie Code ausführen. Worum fragst du eigentlich? Variabler Umfang? – TigerhawkT3