BlackJack hat geschrieben:
Die Methoden beschränken sich nicht nur auf eine Aufgabe, wie `__init__()`, das auch das Laden übernimmt,
Es gehört eben wie schon begründet bei der Instanzierung dieser Objekte dazu
....oder `__str__()`, das ein in der Dokumentation nicht vorgesehenes Argument bekommt und dafür explizit aufgerufen werden muss.
Das sehe ich jetzt mal etwas locker, wenn es eine ganz einfache andere Lösung - integrierbar in meinen Code, gibt, dann gern
Dann ist in der Klasse "GUI" und Datenhaltung vermischt. Es ist aber auch nicht die ganze "GUI" in der Klasse enthalten, also kann man es auch nicht als Anwendungsobjekt sehen.
Du hast auch ein raw_input in deinem Beispiel, erwischt, ggg.
Aber darüber habe ich natürlich auch schon nachgedacht, aber halt noch keine Lösung dafür.
Das sind alles schlechte Beispiele und die sollte man als Lehrer möglichst nicht bringen........
Wenn das immer möglich wäre ohne schlechte Beispiele auszukommen, ich meine auch mein Hauptfach, dann würde ich doppelt so gern unterrichten.
Das es nicht nur etwas mit OOP zu tun hat, vermute ich, da ich nicht sehe das hier eine klare Anforderung in eine Datenstruktur umgesetzt wurde, sondern es mit der Zeit gewachsen ist. Ich denke das wird in der imperativen Variante ähnlich aussehen.
Das stimmt. Allerdings habe ich auf diesem Weg erkannt was eine wesentlich bessere Datenstruktur ist. Erinnerst dich vielleicht noch an die alte?
Ich habe ja offensichtlich keine grosse Erfahrung mit Lehre, aber ich würde folgenden Ablauf für ganz gut halten: Klare Anforderung worauf man hinauswill, Datenstrukuren auswählen und begründen, die benötigten Operationen herausarbeiten, und diese dann als einzelne Funktionen implementieren. Dabei immer darauf achten, das sie von den Schülern einzeln ausprobiert und "erfahren" werden können. Dabei sollte dann ein Ansatz herauskommen, der sich sehr einfach in OOP umsetzen lässt, weil ein guter imperativer Entwurf gar nicht soweit von OOP entfernt sein muss. Im Grunde müssen dabei nur zusammengehörige Datenstrukturen und Funktionen zu Attributen und Methoden zusammengefasst werden.
Auf die Gefahr hin, dass ich gleich wieder durch den Fleichwolf gedreht werde, poste ich mal die Variante mit Funktionen. Ich finde, dass der letzte Satz deines Absatzes ziemlich genau zutrifft.
Aber gucken wir mal....
http://www.ubuntuusers.de/paste/11148/