Sie speichern die globale Variable nicht wirklich in einer lokalen Variable, sondern erstellen lediglich einen lokalen Verweis auf dasselbe Objekt, auf das sich Ihr ursprünglicher globaler Verweis bezieht. Denken Sie daran, dass so gut wie alles in Python ein Name ist, der auf ein Objekt verweist, und dass bei der üblichen Operation nichts kopiert wird.
Wenn man nicht explizit angeben müsste, wann ein Bezeichner auf eine vordefinierte globale Variable verweist, dann müsste man vermutlich stattdessen explizit angeben, wann ein Bezeichner eine neue lokale Variable ist (zum Beispiel mit so etwas wie dem 'var'-Befehl in JavaScript). Da lokale Variablen in jedem ernsthaften und nicht-trivialen System häufiger vorkommen als globale Variablen, ist das System von Python in den meisten Fällen sinnvoller.
Sie könnte eine Sprache haben, die versucht, zu raten, indem sie eine globale Variable verwendet, wenn sie existiert, oder eine lokale Variable erstellt, wenn sie nicht existiert. Das wäre jedoch sehr fehleranfällig. Wenn Sie zum Beispiel ein anderes Modul importieren, könnten Sie versehentlich eine globale Variable mit diesem Namen einführen und damit das Verhalten Ihres Programms ändern.
0 Stimmen
Unabhängig davon, wo Sie "global" vor dem Variablennamen erwähnt haben, kann sie überall wie eine normale lokale Variable verwendet werden, sobald Python sie als mit dem Schlüsselwort "global" gelesen hat. Aber es ist eine sehr schlechte Idee, es sei denn, die Variable ist für das gesamte Projekt gemeinsam. Zum Beispiel: project_name, database_url