Hallo,
nachdem ich jetzt schon mehrere Fragen zu meinem GPS-Projekt gestellt hab, mach ich mir gedacken ob ich das Programm überhaupt richtig aufgebaut hab. Ich bin relativ neu in Python und hab mit OOP noch nicht viel am hut gehabt, deshalb weis ich nicht wie ich die das Programm sinnvoll in Klassen und Methoden aufteilen kann. Ich beschreib hier mal mein Projekt:
Es soll von zwei GPS-Empfängern seriell die Daten empfangen werden, danach müssten Sie nach der Zeit sortiert werden, da es sein kann das die informationen nicht genau zur selben zeit ankommen, da der eine GPS empfänger über eine Funkstrecke verbunden ist. Anschließend wenn die Daten sortiert sind müsste man etwas mit den Daten rechnen und auf einer GUI ausgeben. Eigentlich nichts kompliziertes aber ich bin eben mit Python und alg. der OOP nicht sehr vertraut.
Hat mir da einer ne Link oder ein Tut in dem man OOP gut erklärt bekommt und vor allem wie man es auch sinnvoll einsetzt? Ich hoffe ihr versteht was ich meine.
Grüße draufunddran
Klassenaufbau meines GPS Projektes
Dann lass es, niemand zwingt dich dazu Klassen zu verwenden.draufunddran hat geschrieben:Ich bin relativ neu in Python und hab mit OOP noch nicht viel am hut gehabt, deshalb weis ich nicht wie ich die das Programm sinnvoll in Klassen und Methoden aufteilen kann.
- draufunddran
- User
- Beiträge: 34
- Registriert: Freitag 26. Juni 2009, 13:43
Danke für deinen tipp, aber dann lern ich es ja nie. Ich würde es aber schon gern lernen.
Greetz draufunddran
Greetz draufunddran
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
OOP ist kein Selbstzweck (auch wenn das gern so hingestellt wird).
Für mich klingt deine Beschreibung jetzt auch nicht so, als wäre es nötig; OOP einfach einzusetzen, um es einzusetzen macht nunmal keinen Sinn.
Zum Tutorial hatte Leonidas da was in der Mache, aber erzählt hat er schon lange nichts mehr davon.
Für mich klingt deine Beschreibung jetzt auch nicht so, als wäre es nötig; OOP einfach einzusetzen, um es einzusetzen macht nunmal keinen Sinn.
Zum Tutorial hatte Leonidas da was in der Mache, aber erzählt hat er schon lange nichts mehr davon.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
1. Laß' Dich nicht von negativem Gerede hier abhalten.
2.
Bei größeren Projekten denk' auch an
http://de.wikipedia.org/wiki/Model_View_Controller
um Berechnungen ("Model") und GUI ("View") zu trennen.
Gruß
2.
Wie wär's dann mit einer Klasse "GPS-Empfänger" mit 2 Objekten derselben.Es soll von zwei GPS-Empfängern seriell die Daten empfangen werden
Bei größeren Projekten denk' auch an
http://de.wikipedia.org/wiki/Model_View_Controller
um Berechnungen ("Model") und GUI ("View") zu trennen.
Gruß
- draufunddran
- User
- Beiträge: 34
- Registriert: Freitag 26. Juni 2009, 13:43
Danke problembär für deine Antwort, mein bisheriger ansatz ist fast genau so. Ach eigentlich ist es genau so. Ich hab eine GUI klasse eine zum datenempfang und eine controller klasse.
Zum thema OOP hast du Mir aber auch kein tut oder evtl. ein buch?
Greetz draufunddran
Zum thema OOP hast du Mir aber auch kein tut oder evtl. ein buch?
Greetz draufunddran
Doch, null Problemodraufunddran hat geschrieben:Zum thema OOP hast du Mir aber auch kein tut oder evtl. ein buch?

http://www.awaretek.com/tutorials.html#object
Gruß
-
- User
- Beiträge: 108
- Registriert: Sonntag 7. Februar 2010, 14:16
Abgesehen von einer Klasse GPSReceiver könntest du auch andere Tätigkeiten in Klassen kapseln, also z.B. das was du aus den Daten berechnen musst etc.
So schön wie bei den Beispielen in den C++ Büchern (Klasse Lebewesen, Subklasse Mensch, Subsubklasse Frau) ist es in der Realität leider selten zu realisieren.
So schön wie bei den Beispielen in den C++ Büchern (Klasse Lebewesen, Subklasse Mensch, Subsubklasse Frau) ist es in der Realität leider selten zu realisieren.
@philistion: Wobei man beim Kapseln von *Tätigkeiten* in Klassen aufpassen muss, dass man da nicht nur Klassen zum Selbstzweck erhebt. Wenn man sich Klassen bastelt, die keinen Zustand haben und von denen immer nur ein Exemplar existiert, hat man letztendlich ein Modul mit Funktionen ohne Mehrwert in eine Klasse "gehoben". Wenn man da Zustand reinbringt in dem man lauter Methoden hat, die ausser `self` keine Argumente bekommen, hat man das Äquivalent eines Moduls mit Funktionen die alle auf globalen Daten arbeiten.
Tätigkeiten sind eigentlich eher etwas was man in Funktionen und Methoden steckt. Klassen sind eher für eigene Datentypen und Container für Daten, die Operationen auf ihrem Inhalt durchführen können.
Tätigkeiten sind eigentlich eher etwas was man in Funktionen und Methoden steckt. Klassen sind eher für eigene Datentypen und Container für Daten, die Operationen auf ihrem Inhalt durchführen können.
- draufunddran
- User
- Beiträge: 34
- Registriert: Freitag 26. Juni 2009, 13:43
Danke nochmal für die Antworten.
Also die Klasse mit dem GPS-empfang hat ja zwei instanzen dann werd ich die beibehalten und die GUI-klasse behalt ich auch, da ich nur gui tuts mit klassen gelesen hab.
danke nochmal,
draufunddran
Also die Klasse mit dem GPS-empfang hat ja zwei instanzen dann werd ich die beibehalten und die GUI-klasse behalt ich auch, da ich nur gui tuts mit klassen gelesen hab.
danke nochmal,
draufunddran