local variable 'user' referenced before assignment

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
Bob13
User
Beiträge: 29
Registriert: Samstag 23. Mai 2009, 18:13

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]
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Wenn "PRIVMSG" nicht in "eingang" steht, dann wird nichts an "user" gebunden, beim return-Statement soll es aber trotzdem zurückgegeben werden.
Das Leben ist wie ein Tennisball.
Bob13
User
Beiträge: 29
Registriert: Samstag 23. Mai 2009, 18:13

ach klar ;)
Danke für die schnelle Hilfe!
Antworten