Beim Lesen der Dokumentation verstehe ich, dass Python einen separaten Namespace für Funktionen hat. Wenn ich in dieser Funktion eine globale Variable verwenden möchte, muss ich diese verwenden global
.
Ich benutze Python 2.7 und habe diesen kleinen Test ausprobiert
>>> sub = ['0', '0', '0', '0']
>>> def getJoin():
... return '.'.join(sub)
...
>>> getJoin()
'0.0.0.0'
Es scheint, dass die Dinge auch ohne gut funktionieren global
. Ich konnte problemlos auf globale Variablen zugreifen.
Vermisse ich etwas Folgendes stammt aus der Python-Dokumentation:
In einer globalen Anweisung aufgeführte Namen dürfen nicht als formale Parameter oder in einem for-Regelkreisziel, einer Klassendefinition, einer Funktionsdefinition oder einer Importanweisung definiert werden.
Während formale Parameter und Klassendefinition für mich sinnvoll sind, kann ich die Einschränkung für die Ziel- und Funktionsdefinition der Schleifensteuerung nicht verstehen.
def foo(): ...
und foo = ...
gleichzeitig). Es wird für jeden Funktionsaufruf ein neuer Bereich erstellt. (Aber wie unterscheidet sich dies von etwa jeder anderen