Seite 1 von 1

local variable 'user' referenced before assignment

Verfasst: Samstag 23. Mai 2009, 18:22
von Bob13
Hi!
Ich hab folgendes Problem:
Wenn ich meinen Python IRC Bot ausführen will, erscheint folgende Fehlermeldung:
UnboundLocalError: local variable 'user' referenced before assignment
Der Code für die Funktion, wo der Fehler auftritt, sieht so aus:

Code: Alles auswählen

def parsen_text(eingang):
	if "PRIVMSG" in eingang:
		user = eingang.split("!")[0]
		channel = eingang.split()[2]
		nachricht = eingang.split(":")[1]
	return [user, channel, nachricht]
Schließlich wird die Funktion so aufgerufen:

Code: Alles auswählen

ergebnis = parsen_text(eingang)
Ich kann mir absolut nicht erklären, warum dieser Fehler auftritt?
Ich hoffe mir kann einer helfen.[/code]

Verfasst: Samstag 23. Mai 2009, 18:26
von cofi
Der Fehler tritt auf, wenn "PRIVMSG" eben nicht in `eingang` ist.
Du solltest die `return`-Anweisung eine Ebene einrücken und ein `ValueError` o.ä. bzw einen expliziten Wert zurückliefern, der aussagt, dass da eben kein "PRIVMSG" enthalten ist.

Verfasst: Samstag 23. Mai 2009, 18:27
von EyDu
Wenn "PRIVMSG" nicht in "eingang" steht, dann wird nichts an "user" gebunden, beim return-Statement soll es aber trotzdem zurückgegeben werden.

Verfasst: Samstag 23. Mai 2009, 18:39
von Bob13
ach klar ;)
Danke für die schnelle Hilfe!