Seite 1 von 2

Verfasst: Freitag 1. Februar 2008, 13:46
von BlackJack
@boid: Tupel sind im Grunde wie Listen, nur dass man sie nicht verändern kann. Es gibt einen kleinen Speicherplatzvorteil, weil Tupel, da nicht veränderbar, keinen Platz für spätere `append()`-Operationen "überbelegen", aber das ist hier ziemlich teuer erkauft, weil Du das `append()` ja recht häufig brauchst und es bei Tupeln halt von der Laufzeit echt ungünstig ist.

Auch bei einer `__readHeader()` braucht man keine extra `get`-Methode wenn die das Ergebnis an das Attribut `header` bindet. Wobei die zwei Unterstriche etwas übertrieben sind, wenn nicht gar schlechter Entwurf. Zwei führende Unterstriche sind dazu da, um Namenskollisionen in Unterklassen oder "Mixin"-Klassen zu vermeiden und nicht um so eine Art `private` wie in C++/C#/Java zu erzwingen. `private` ist in Python per Konvention *ein* führender Unterstrich. Das sagt anderen Programmierern, dass ist ein Implementierungsdetail, benutzen auf eigene Gefahr.

Meine Kritiken sind meistens kurz, knapp und technisch. Bitte nicht in den falschen Hals bekommen, ist wirklich nett gemeint und nicht als Angriff. Natürlich kann man nicht alles in der Standardbibliothek kennen, gerade als Einsteiger in die Sprache.

Verfasst: Freitag 1. Februar 2008, 13:51
von boid
keine Sorge, habe es nur als konstruktive Kritik aufgefasst und auch als solche empfunden.

Verfasst: Freitag 1. Februar 2008, 17:02
von BlackJack
Mal ein völlig ungetesteter Anfang, wie man das mit weniger Klasse(n) ;-) und mehr und abstrakteren Funktionen machen kann: http://paste.pocoo.org/show/25093/

Ist vielleicht genauso unverständlich wie dreifach indirekter Indexzugriff in tief verschachtelten Schleifen, aber dafür kompakter. :-D

Verfasst: Freitag 1. Februar 2008, 20:10
von Rebecca
BlackJack hat geschrieben:Meine Kritiken sind meistens kurz, knapp und technisch. Bitte nicht in den falschen Hals bekommen, ist wirklich nett gemeint und nicht als Angriff.
Daraus solltest du dir eine Signatur machen. :wink:

Verfasst: Freitag 1. Februar 2008, 20:58
von BlackJack
:-D

Verfasst: Montag 4. Februar 2008, 09:56
von boid
Danke, BlackJack. Habe zwar am Wochenende auch schon weiter gemacht und die Vorschläge array und StringIO eingebaut, aber ich werde mir Dein Beispiel nochmal anschauen.

An das umstellen der Klasse hatte ich mich noch nicht gewagt. Das hätte ja quasi fast ein neues Skript bedeutet und dafür tat das alte vorerst genau das was es auf die schnelle erledigen sollte.

Werde mir heute abend dann einmal Deinen Code anschauen.

PS: habe doch schon mal gleich überflogen. unterstützt halt nicht alles was ich implementiert hatte, aber ich sah schon ganz neue sachen wie islice().