Ich habe mich jetzt nach der ersten Umsetzung der HangMan Projektidee von [wiki]Projektideen[/wiki] an dem Adressbuch versucht. Zunächst nur mit Pickle, die Umsetzung für SQL wird dann noch folgen, sollte der Code gut genug sein.
Könntet Ihr euch den Code mal anschauen und mir sagen, was alles verbesserungswürdig ist, oder was anders geregelt werden könnte? Ich bin mir nicht sicher, ob die Aufteilung der Funktionen und das verwenden der Klasse so 100% in Ordnung ist, außerdem wüsste ich nicht wie ich das immer wiederkehrende Menü ohne eine While-Schleife erledige.
Vielen Dank schonmal!
Code: Alles auswählen
import pickle
from sys import exit
class Person(object):
def __init__(self):
self.vorname = 'Max'
self.name = 'Mustermann'
self.geburtsort = 'Musterhausen'
self.strasse = 'Musterstr.'
self.hausnummer = '1'
self.plz = '12345'
self.stadt = 'Musterhausen'
def __del__(self):
print 'Person geloescht!'
def person_add():
person = Person()
person.vorname = raw_input('Vorname: ')
person.name = raw_input('Nachname: ')
person.geburtsort = raw_input('Geburtsort: ')
person.strasse = raw_input('Strasse: ')
person.hausnummer = int(raw_input('Hausnummer: '))
person.plz = int(raw_input('PLZ: '))
person.stadt = raw_input('Stadt: ')
return person
def dump_dict(personen):
file = open('personen/daten.pk1', 'wb')
pickle.dump(personen, file)
file.close()
def load_dict():
file = open('personen/daten.pk1', 'rb')
personen = pickle.load(file)
file.close()
return personen
def menue():
print '1) Personen listen'
print '2) Person hinzufuegen'
print '3) Person loeschen'
print '4) Programm beenden\n'
i = int(raw_input('Waehlen Sie eine Option: '))
return i
personen = load_dict()
if personen == '':
print 'Personenliste ist leer! Bitte eine Person hinzufuegen'
personen = person_add()
personen = {personen.name:person}
dump_dict(personen)
weiter = 'ja'
while weiter == 'ja':
i = menue()
if i == 1:
x = 0
for i in personen:
x+=1
print str(x) + ') ' + i
beenden = 'nein'
while beenden != 'ja':
i = raw_input('\nWelche Person moechten Sie anzeigen?\n')
person = personen[i]
print 'Vorname: ' + person.vorname
print 'Nachname: ' + person.name
print 'Gebursort: ' + person.geburtsort
print 'Strasse: ' + person.strasse
print 'Hausnummer: ' + str(person.hausnummer)
print 'PLZ: ' + str(person.plz)
print 'Stadt: ' + person.stadt
i = raw_input('\n1) Menue \n2) Weitere Person suchen')
if i == '2':
beenden = 'nein'
elif i == '1':
beenden = 'ja'
weiter = 'ja'
elif i == 2:
person = person_add()
personen[person.name] = person
dump_dict(personen)
elif i == 3:
x = 0
for i in personen:
x+=1
print str(x) + ') ' + i
i = raw_input('\nWelche Person moechten Sie loeschen?\n')
del personen[i]
elif i == 4:
exit()