Fehler:"No binding for nonlocal 'var_1B' found

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.
Antworten
JEC
User
Beiträge: 7
Registriert: Freitag 26. Juli 2019, 21:12

Hallöchen,
ich habe heute ein Script geschrieben, welches immer wieder eine Fehlermeldung ausgibt (siehe Titel).
Ich verstehe allerdings nicht, wo der Fehler liegen soll. Falls ihr mir helfen könntet, wäre das Super.

Hier das besagte Stück Code (!!! zeigt die, als Fehler, markierte Stelle an.):

Code: Alles auswählen

#Gültigkeitsbereich von Variablen
                            # Main-Space entspricht dem Gültigkeitsbereich Ground_0
def f():                    # Funktion f ist Gültigkeitsbereich 0A
    var_f = "test"          # Die Variable var ist nur in Gültigkeitsbereich 1 verwendbar
    print("after init", var)#
                            #
    def loc():              # Funktion loc ist Gültigkeitsbereich 1A
        var_A = "local"     #
                            #
    def upgrade():          # Funktion upgrade ist Gültigkeitsbereich 1B
    !!! nonlocal var_1B     # Durch den Befehl nonlocal erweitert sich der Gültigkeits-
        var_1B = "upgrade"  # bereich von var_1B von 1B auf 0A
                            #
    def globe():            # Funktion globe entspricht dem Gültigkeitsbereich 1C
        global var_1C       # Durch den Befehl global verschiebt sich die Variable var_1C
        var_1C = "global"   # von Gültigkeitsbereich 1C in Gültigkeitsbereich Ground_Zero
PS: Ich nutze Python 3.7
Sirius3
User
Beiträge: 18270
Registriert: Sonntag 21. Oktober 2012, 17:20

weder `global` noch `nonlocal` sollten in einem ordentlichen Programm vorkommen.
`nonlocal` macht ja auch nur Sinn, wenn es eine lokale Variable gleichen Namens gibt.
JEC
User
Beiträge: 7
Registriert: Freitag 26. Juli 2019, 21:12

OK. Verstehe. Ich danke dir.

LG JEC
Antworten