2016-04-19 6 views
2

Ich kann nicht verstehen, was das Problem in meinem Python-Code ist. Es gibt mir die folgende Fehlermeldung:Python: UnboundLocalError: lokale Variable 'count', auf die vor der Zuweisung verwiesen wird

Traceback (most recent call last): 
    File "main.py", line 77, in <module> 
    main(); 
    File "main.py", line 67, in main 
    count -= 1 
UnboundLocalError: local variable 'count' referenced before assignment 

Hier ist ein Teil des Codes ist

I globale Variable

count = 3 

definiert dann habe ich Methode main

def main(): 
    f = open(filename, 'r') 

    if f != None: 
     for line in f: 

      #some code here 

      count -= 1 
      if count == 0: 
       break 

was sein kann falsch hier?

Dank

+4

Sie haben vergessen, 'main()' zu sagen, dass 'count' global ist. –

+0

(fügen Sie "globale Zählung" zur ersten Zeile der Hauptfunktion hinzu) – damio

+0

Der beste Weg wäre, globale Variablen zu überspringen und stattdessen mit einem Funktionsparameter und einem Rückgabewert zu arbeiten. Siehe: [Warum sind globale Variablen böse?] (Http://stackoverflow.com/questions/19158339/why-are-global-variables-evil) – Matthias

Antwort

5

count -= 1 ist count = count - 1 gleichwertig. count wird ausgewertet, bevor es lokal definiert ist. In diesem Fall sollten Sie den Gültigkeitsbereich count explizit innerhalb der Funktion global festlegen (d. H. Außerhalb der Funktion definiert).

def main(): 
    global count 
Verwandte Themen