Zu überlegen ist auch, welche Werkzeuge (Programmierumgebung, Versionskontrolle, u.a.) eingesetzt werden sollen. Z.B. GUI gestalten mit XRCed,. Hinweisen möchte ich auf meinen Text "Einführung in die Entwicklung von Anwendungen mit Python"
http://frerich.eu/Python/AE/index.html
XRCed hat zwar inzwischen ein anderes Aussehen, doch ist es grundsätzlich igenau wie beschrieben anzuwenden.
efrerich
Wie soll ich am besten ein neues Programmprojekt beginnen?
@efrerich: Ich habs mal angelesen und ein wenig Kritik am Quelltext von `lesenAbgleichDatei(). Das fängt, wie üblich, mit der Namensgebung an. Klar ist PEP8 nicht Pflicht, aber Du hast ja *noch* eine unüblichere Variante gewählt, die wenn ich das richtig sehe korrekte deutsche Rechtschreibung ist. Also `Mitglieder` statt `mitglieder` weil man das Wort im deutschen halt gross schreibt. Da bleibt die Unterscheidung Klassen vs. andere Namen komplett auf der Strecke. Andererseits fragt man sich dann natürlich was in `lesenAbgleichDatei()` das `f` bedeuten soll. Korrekt auf Deutsch und mit einem Buchstaben abgekürzt müsste es wohl eher `D` heissen.
`readlines()` ist in 99% der Fälle überflüssig. Hier auch.
`ersteZeileBearbeitet` ist überflüssig, wenn man einfach die erste Zeile extra behandelt und nicht in allen Folgezeilen an diesem Flag prüft, ob es denn die erste Zeile ist. Ein Name weniger und konzeptionell einfacherer Quelltext. Dann kann man zum Beispiel auch eine "list comprehension" einsetzen (ungetestet):
Den Funktionsnamen habe ich auf `read()` verkürzt, weil die Information, das es sich um die Abgleichdatei handelt, schon im Modulnamen steckt. `abgleichdatei.lesenAbgleichDatei()` ist bloss länger als `abgleichdatei.lesen()` ohne zusätzliche Informationen zu liefern.
Grundsätzlich stellt sich hier natürlich die Frage, warum nicht das `csv`-Modul aus der Standardbibliothek zur Anwendung kommt.
`readlines()` ist in 99% der Fälle überflüssig. Hier auch.
`ersteZeileBearbeitet` ist überflüssig, wenn man einfach die erste Zeile extra behandelt und nicht in allen Folgezeilen an diesem Flag prüft, ob es denn die erste Zeile ist. Ein Name weniger und konzeptionell einfacherer Quelltext. Dann kann man zum Beispiel auch eine "list comprehension" einsetzen (ungetestet):
Code: Alles auswählen
def read(filename, delimiter=';'):
with open(filename) as lines:
description = lines.next().split(delimiter)
if description != EXPECTED_DESCRIPTION:
log.critical('Falsche Datei')
raise WrongFile()
data = [s.split(delimiter) for s in lines]
return (description, data)
Grundsätzlich stellt sich hier natürlich die Frage, warum nicht das `csv`-Modul aus der Standardbibliothek zur Anwendung kommt.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Weiterhin ist die Empfehlung zu SVN nicht so wahrlich auf der höhe, das gleiche Setup mit Mercurial wäre ein gutes Stück einfacher und auch universeller.
Ich finde es natürlich schön dass du Sphinx benutzt hast, aber die Abgerundeten Ränder sehen bei mir etwas kaputt aus und die rote und blaue Schrift tut den Augen schon etwas weh.
Ich finde es natürlich schön dass du Sphinx benutzt hast, aber die Abgerundeten Ränder sehen bei mir etwas kaputt aus und die rote und blaue Schrift tut den Augen schon etwas weh.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich fand "wxPython in Action" gar nicht mal so schlecht..., und wie haeufig sollte es denn aktualisiert werden? Sowas ist tierisch zeitaufwendig, und die wxPython API ist relativ stabil, so dass es sich fuer den Autor wohl kaum lohnen wird.Francesco hat geschrieben:> ... auf wxpyhton in action "angewiesen" ...
das sehe ich ganz und gar nicht ganz so
Das Buch ist eine kompatke Form, ja; ich habe es selbst auch damals gleich bestellt
Aber:
a) es steht sicher nicht alles drinnen
b) ist es aus dem Jahr 2006 IIRC, und somit sicher nicht mehr ganz aktuell
Aber zum Thema: egal ob PyQt (+ designer) oder wxPython (+ wxGlade), man wird erst dann zum guten GUI-Entwickler, wenn man die Prinzipien event-gesteuerter Programmierung auch wirklich verstanden hat. Und wer es verstanden hat, der kann im Grunde vom einem GUI-Toolkit zum naechsten ohne groessere Schwierigkeiten wechseln. Nur die API ist anders, aber dafuer gibt es zum Trost bei beiden Toolkits eine Menge Beispiele, an denen man schnell erkennen kann, was zu tun ist.
Aber, wie gesagt, wxPython vs. PyQt ist eine bikeshed Diskussion: solange man nicht ein paar grundlegende Dinge gelernt hat, z.B. wie man langlaufende Operationen asynchron anstoesst, ohne das GUI einzufrieren, wie man Timer einsetzt etc..., wird ein GUI-Programm so oder so nicht optimal laufen. Da spielt das jeweilige Toolkit dann nur eine untergeordnete Rolle.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Den bei http://frerich.eu/Python/AE/index.htmlaudax hat geschrieben:Über welchen Quellcode redet ihr? oO
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte