[Python-Leipzig] Treffen am Dienstag, 12. Mai 2015, 20:00 Uhr

Markus Zapke-Gründemann markus at keimlink.de
Mo Mai 25 20:35:48 UTC 2015


On 2015-05-15 09:47 +0200, Stefan Schwarzer wrote:
> - Einige Docstrings (zum Beispiel `Collection.values` und
>   `Collection.value_list`) geben etwas anderes zurück als im
>   Docstring angegeben ist. Beispielsweise heißt es im
>   Docstring von `values`: "Returns a list of dictionaries
>   instead of Element instances." Tatsächlich gibt die
>   Methode aber `self` zurück.
> 
>   Nebenbei: Ich würde den Teil "instead of ..." weglassen.
>   Das ist verwirrend, weil sich der Leser fragen muss:
>   "Warum 'statt `Element`-Instanzen'? Warum sollte `values`
>   denn `Element`-Instanzen liefern?"
Ich denke deine "Verwirrung" rührt daher, dass wir Collection leider
noch nicht vollständig dokumentiert haben und deshalb das Konzept dieser
Klasse nicht ganz klar ist.

Kurz zur Klarstellung:

1. Die Methoden geben self zurück, damit sie aneinandergereiht werden
können
2. Der Aufruf eines Iterators oder die Umwandlung in einen String geben
dann die Element-Instanzen zurück
3. Einige Methoden verhalten sich anders als in 2. beschrieben, daher
das "instead of" im docstring

> - Ich bin mir nicht so sicher, inwieweit man einen
>   `get_`-Präfix verwenden sollte. Warum heißt es bei
>   `Collection` zum Beispiel `count` (ohne `get`), aber
>   `get_element` (mit `get`)?
Collection.get_element() ist eine Factory. Sei erzeugt neue Element
Instanzen "on the fly".

> - Dann noch ein Punkt, den ich noch nach dem eigentlichen
>   Treffen genannt hatte: Zum Prüfen, ob ein Container
>   Elemente enthält, würde ich `if container:` verwenden,
>   nicht `if len(container):` wie in ein paar Stellen im
>   Code. Ich denke, ersteres ist die typische, idiomatische
>   Schreibweise.
Wurde schon korrigiert:
https://github.com/transcode-de/durga/commit/7189e05f334cf27bf0ccd866fca9a42670c2549a

Danke für den Hinweis. :-)

Die docstrings wurden inzwischen ebenfalls korrigiert:
https://github.com/transcode-de/durga/pull/49/files

Und auch die Exceptions wurden verbessert:
https://github.com/transcode-de/durga/pull/54/files

> Markus oder René, sagt mir bitte Bescheid, wenn ich zu einem
> oder mehreren Punkten oben Tickets eingeben soll.
Falls dir etwas einfällt einfach ein Issue erstellen. Ganz wie Grace
Hopper sagte: "It’s always easier to ask forgiveness than it is to get
permission." ;-)


Viele Grüße

Markus



Mehr Informationen über die Mailingliste Python-Leipzig