Xfd7887a hat geschrieben:Apropos Klassen: Würde es Sinn machen, mein Programm mit Klassen auszudrücken?
Ich finde ja. Momentan befinden sich Deine Daten `aufgaben` auf Modulebene, wo Sie eigentlich nicht hingehören. Wenn Du dafür eine Klasse `Tasks` (ich bevorzuge ja englische Namen) erstellst fände ich das übersichtlicher. Zudem wäre dann zusammen, was zusammengehört: Die Attribute einer Aufgabe wie Fach, Datum etc. und die Methoden (Funktionen), die Du darauf anwendest. Zum Beispiel:
Code: Alles auswählen
class Task(object):
def __init__(self, subject, date, theme, grade):
self.subject = subject
self.date = date
self.theme = theme
self.grade = grade
def __str__(self):
return 'Task: {s} {d} {t} {g}'.format(
s=self.subject, d=self.date,
t=self.theme, g=self.grade)
class Tasks(object):
def __init__(self):
self.tasks = set()
def add_task(self, task):
self.tasks.add(task)
def __iter__(self):
for task in self.tasks:
yield task
Code: Alles auswählen
>>> import todo
>>> tasks = todo.Tasks()
>>> tasks.add_task(todo.Task('Mathe', '28.06.2014', 'Bruchrechnen', 'befriedigend'))
>>> tasks.add_task(todo.Task('Deutsch', '27.06.2014', 'Rechdschraibuhnk', 'ungenuegend'))
>>> for task in tasks:
... print task
...
Task: Mathe 28.06.2014 Bruchrechnen befriedigend
Task: Deutsch 27.06.2014 Rechdschraibuhnk ungenuegend
Das soll jetzt nur mal den Einsatz von Klassen demonstrieren und muss jetzt nicht zwingend für das, was Du vorhast 1:1 passen...
mutetella