OOP klassen und ordner struktur verpacken

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
pycodein
User
Beiträge: 10
Registriert: Dienstag 12. Juni 2007, 15:48

Montag 30. Juli 2007, 19:28

hi

Ich kenne python eigentlich fast nur von quick&dirty scripte und von dem django Framework.

Mir ist aufgefallen das der Editor Eclipse mit dem Modul pydev eine Hierarchie mit packages und modulen anlegt, die alle samt Ordner sein könnten.
Mich verwirrt das etwas da mir unklar ist ob ich nun in den einzelnen modulen noch Klassen schreiben soll oder ob es reicht mit Funktionen zu arbeiten.

Arbeite aktuell an einen Projekt das etwas parsed, downloadet und die Information in eine Datenbank speichert. Ich denke mir das es gescheit ist da 3 Klassen dafür zu schreiben, nur leider bin ich mir total unsicher wie ich das am besten mache.

Im Moment habe ich einfach einen Ordner "module" und darin meine 3 Klassen (parser.py, database.py und download.py).
Es wäre natürlich auch möglich für jedes modul einen Ordner zu erzeugen und darin eine __init__.py legen und direkt da meinen Code reinschreibe, ich denke so hat sich das pydev auch gedacht.

Mir ist schon klar das es wahrscheinlich jeder etwas anders macht, vielleicht gibt es aber doch etwas das mir helfen könnte einen gescheite Struktur zu bekommen.

Wäre extrem dankbar für praxis Tips :)

vielen Dank!
BlackJack

Montag 30. Juli 2007, 20:38

Es gibt Funktionen und Klassen, die in Modulen zusammengefasst werden können und diese Module können in Packages zusammengefasst werden, also Verzeichnisse mit einer `__init__.py`. Es gibt natürlich verschiedene Strategien, aber das Programm ohne Zwischenschritte sofort in *Packages* aufzuteilen ist sicher keine gute oder verbreitete. Und der Entwickler von `pydev` hat sich das auch hoffentlich nicht so gedacht. Obwohl ich Java-Programmierern so etwas glatt zutrauen würde. ;-)

Und was Du da hast klingt nicht nach drei Klassen, sondern nach drei Modulen. Modul == `*.py`-Datei.

Was in Funktionen und was in Klassen gesteckt wird, hängt davon ab, was man machen will. Beides hat seine Berechtigung und es ist auch keine Entscheidung entweder/oder, es kann durchaus sinnvoll sein beides zu benutzen.
pycodein
User
Beiträge: 10
Registriert: Dienstag 12. Juni 2007, 15:48

Montag 30. Juli 2007, 21:40

Danke für die Antwort BlackJack.

ich denke auch das javaprogrammierer dazu geneigt sind jede klasse in ein file abzulegen :)

das mein Ordner "module" heißt ist einfach weil ich nicht gewusst habe wie ich ihn am besten nenne, vielleicht ist auch "lib" angebrachter.
Ich dachte halt es gibt eine Art von Norm wo sich andere Programmierer einfacher zurechtfinden können.

Mein Ansatz war halt das ich eine Steuerdatei (Interface) habe und einen Ordner wo ich die Module reinschreibe.

Ich komme aus der Webbranche und hab nur wenig praktische Erfahrung mit OOP bzw OOP in Python möchte aber es gescheit machen :)
Antworten