globale variable vermeiden
Verfasst: Montag 18. Mai 2009, 20:05
Hallo, ich hab irgendwo mal gelesen, dass globale Variablen böse sind
. Erstmal möchte ich fragen wieso? Eigentlich sind sie doch praktisch.
Nun hab ich hier eine kleine Passwortabfrage geschrieben.
So, ich weiß nicht ob das Sinn hat, aber darum geht es mir nicht.
Nun möchte ich, die Schreibfunktion für die Datei in eine eigene Funktion auslagern. Nun habe ich bis jetzt mit der lokalen Variable "username" gearbeitet. Ich könnte natürlich jetzt mit einer globalen Variable ganz einfach auf "username" zugreifen. Das möchte ich allerdings nicht. Gibt es eine Möglichkeit? Oder ist mein Vorhaben total sinnlos und macht die Sache unnötig kompliziert?
Ich brauch keine Komplettlösung, möchte gern noch ein bisschen denken

Nun hab ich hier eine kleine Passwortabfrage geschrieben.
Code: Alles auswählen
import datetime
def passwort():
i=3;
while (i>=1):
username = raw_input('Username? ')
pw = raw_input('Passwort? ')
if (username == "admin" and pw == "1234"):
print 'Passwort OK'
i=0;
else:
versuche = i-1;
if (versuche == 0):
print "Ihr Konto wurde gesperrt"
datei = file("E:\Proggen\erstes\src\daten\datei.txt","a")
benutzer_name = str(username) ## Kontosperre wird geloggt
benutzer_info = str(benutzer_name) + " " + str(datetime.datetime.now()) + "\n"
datei.write(benutzer_info) ## String wird in Datei geschrieben
datei.close()
else:
print 'Passwort Falsch oder Benutzernamefalsch' + "Sie haben noch " + str(versuche) + " Versuche";
i=i-1;
passwort()
So, ich weiß nicht ob das Sinn hat, aber darum geht es mir nicht.
Code: Alles auswählen
datei = file("E:\Proggen\erstes\src\daten\datei.txt","a")
benutzer_name = str(username) ## Kontosperre wird geloggt
benutzer_info = str(benutzer_name) + " " + str(datetime.datetime.now()) + "\n"
datei.write(benutzer_info) ## String wird in Datei geschrieben
datei.close()
Ich brauch keine Komplettlösung, möchte gern noch ein bisschen denken
