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

Martin Meinhardt adurol at mail.ee
Fr Mai 15 19:30:01 UTC 2015


Am 15.05.2015 09:47, schrieb Stefan Schwarzer:
> - 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`)?
>
>    Ich bin seit langer Zeit dazu übergegangen, keine
>    `get_`-Präfixe mehr zu verwenden und werde das höchstens
>    ändern, wenn mir jemand ein überzeugendes Kriterium nennen
>    kann, wann man `get_` verwenden sollte und wann nicht. :-)
>
>    Das einzige Kriterium, das ich mir vorstellen kann, ist,
>    `get_` bei jeder Query-Methode zu verwenden, aber das
>    würde viele APIs recht geschwätzig machen.
>
>    Kennt jemand ein gutes Kriterium dafür, wann man einen
>    `get_`-Präfix verwenden sollte?

Zum "get_"-Präfix viel mir der sehr gute Vortrag "Beyond PEP 8 -- Best 
practices for beautiful intelligible code" ein, den Raymond Hettinger 
auf der PyCon 2015 gehalten hat. Ab 28:36[1] bis 29:37 äußert er sich zu 
'getters' und 'setters'. (Das gesamte Video ist unbedingt sehenswert.)

Innerhalb einer Klasse würde ich den Setter und Getter für die Property 
mit "get_" oder "set_" bezeichnen. Nach außen, wo es aussieht wie ein 
Attribute, würde ich den Präfix weglassen.
Ich schätze das man meist beim schreiben der Property den "internen" 
get-Namen der Funkton nach außen als Attributsnamen übernimmt.
Statt "get_something" wäre auch ein Name wie "return_something()" und 
ähnliches möglich. Da sehe ich auch am Namen das was passiert. Wobei das 
dann schon wieder eher für eine Funktion als ein Attribute/Property 
spricht...

Ich selbst benutze Properties wie Attribute. So wie in der 
Python-Dokumentation zu Properties[2] beschrieben. Das impliziert das es 
ein 'get' oder 'set' gibt, und braucht meiner Ansicht nach nicht im 
Namen zu stehen.

Übrigens, wenn man in der Python-Dokumentation nach "get_" sucht, erhält 
man überraschenderweise 253 Suchergebnisse.[3]

Grüße
Martin Meinhardt

[1] http://www.youtube.com/watch?v=wf-BqAjZb8M&t=28m36s
[2] https://docs.python.org/3.4/library/functions.html#property
[3] https://docs.python.org/3.4/search.html?q=get_



Mehr Informationen über die Mailingliste Python-Leipzig