Seite 1 von 1
Struktur- und Kodierungsfrage
Verfasst: Sonntag 21. Juni 2009, 00:30
von start_with_python
Hallo!
Ich bin ganz neu in der Python-Materie. Eigelesen habe ich mich inzwischen mit "ByteOfPython" und Teilen des Galileo-Openbook, welches mir aber nicht wirklich gefällt.
Ich bastle schon an einem "größeren" Projekt und mache mir Gedanken um eine saubere Strukturierung. Vorallem das Aufteilen des Codes in verschiedene Module finde ich interessant. Da meine Kenntnisse ja nun wirklich noch nicht sehr gut sind und auch meine Stil alles andere als schön ist, dacht ich mir, einfach erstmal alle Module in einen Unterordner "dirty" zu packen, sodass ich das Projekt fertig stellen kann und später alles "clean" zu machen und in ordentliche Ordner zu verschieben. So müsste ich dann nur den Import-Pfad anpassen, oder?
Was haltet ihr generell von der Idee? Gibt es bessere Möglichkeiten?
Danke und gute Nacht!
Verfasst: Sonntag 21. Juni 2009, 00:57
von BlackJack
@start_with_python: Die Frage ist IMHO nicht konkret genug. Von wievielen Modulen reden wir denn? Reicht da eventuell ein "Ordner" aus? Wenn es mehrere werden, sollte man auf jeden Fall Packages daraus machen. Den Import-Pfad sollte man IMHO gar nicht, oder wenn dann nur auf die Packagestruktur anpassen.
Verfasst: Sonntag 21. Juni 2009, 00:57
von problembär
Wenn man ein GUI programmiert, sollte man bei größeren Projekten den GUI-Code von dem "Engine"-Code trennen. Das macht man üblicherweise mit drei Klassen
"Model", "View" und "Controller".
Das sollte in den (Python-) Lehrbüchern stehen, tut's aber in der Regel leider nicht (weshalb ich schon allerhand umschreiben mußte

) ...
Gruß
Verfasst: Sonntag 21. Juni 2009, 11:07
von start_with_python
BlackJack hat geschrieben:Die Frage ist IMHO nicht konkret genug. Von wievielen Modulen reden wir denn? Reicht da eventuell ein "Ordner" aus? Wenn es mehrere werden, sollte man auf jeden Fall Packages daraus machen.
Wie viele Module es werden weiß ich jetzt noch nicht. Ich plane aber mehere. Es wird wachsen, wachsen, wachsen, ...
Du meinst mit Packeten sicher
packages, oder? Ich meinte grob das gleiche, habs nur schlecht formuliert, sry. Ich will also Pakages nutzen, ja.
BlackJack hat geschrieben: Den Import-Pfad sollte man IMHO gar nicht, oder wenn dann nur auf die Packagestruktur anpassen.
Das stellt mich vor ein Rätsel. Weinst du das?
Ich hätte es so gemacht
Code: Alles auswählen
import Megapacket.Dirty.Unterpacket.Modul as DasNutzeIch
import Megapacket.Dirty.Unterpacket.Modul2 as NochEinModul
import Megapacket.Unterpacket.Modul3 as SchonSauberProgrammiert
Wenn ich etwas aus dem "Dirty"-Bereich ausgebessert habe, verschiebe ich es in einen anderen Ordner und editiere EINMAL den Importpfad.
problembär hat geschrieben:Wenn man ein GUI programmiert, sollte man bei größeren Projekten den GUI-Code von dem "Engine"-Code trennen. Das macht man üblicherweise mit drei Klassen
"Model", "View" und "Controller".
Das kommt auf meine "Bitte beachten"-Liste, sobald ich mit der Gui anfange. Aber bis dahin ist es noch ein weeeiter weg
Danke euch beiden schonmal!
Verfasst: Sonntag 21. Juni 2009, 12:03
von BlackJack
@start_with_python: Ich meinte mit Packages in der Tat Packages. "Packete (sic!)" habe ich nicht geschrieben.
Mit Import-Pfad meinte ich den Pfad auf dem Dateisystem, in dem Python sucht. Nicht das was bei der ``import``-Anweisung angegeben wird.
Von einem "dirty"-Package halte ich nicht so viel. Das ist eine Information über den Zustand des Quelltextes und keine semantische Einteilung des Inhalts. So etwas gehört in die Dokumentation, aber IMHO nicht in die Paketstruktur. Es zerplittert die Aufteilung der Pakete und zieht Umbenennungs- bzw. Verschiebeaktionen nach sich, die nicht nötig wären.
Das war jetzt ja nur ein Beispiel von Dir, aber die Namensgebung entspricht nicht PEP8.
Verfasst: Sonntag 21. Juni 2009, 12:23
von start_with_python
BlackJack hat geschrieben:
Von einem "dirty"-Package halte ich nicht so viel. Das ist eine Information über den Zustand des Quelltextes und keine semantische Einteilung des Inhalts. So etwas gehört in die Dokumentation, aber IMHO nicht in die Paketstruktur. Es zerplittert die Aufteilung der Pakete und zieht Umbenennungs- bzw. Verschiebeaktionen nach sich, die nicht nötig wären.
Hmm. Ok. An eine Doku habe ich nämlich bis dato auch nocht nicht gedacht. Aber das hört sich nach einer guten Idee an.
BlackJack hat geschrieben:PEP8.
[wiki=PEP 8 (?ersetzung)]PEP8 [/wiki]- Warum wird man in Tutorials nicht auf soetwas hingewiesen? Finde ich klasse und werde versuchen mich daran zu halten!
Danke dir!
Verfasst: Sonntag 21. Juni 2009, 12:53
von cofi
Im offiziellen Tutorial wird man auf PEP8 hingewiesen.
Hier ist übrigens
das Original