Seite 1 von 1

Namenskonvention - wie wichtig?

Verfasst: Donnerstag 10. Dezember 2020, 16:02
von Miranda
Hallo ihr Lieben,

ich beschäftige mich zur Zeit wieder mehr mit Python und habe mich mit einem Kollegen etwas in den Haaren, der mein mein Code sei nicht "Python".

Ich schreibe Funktionen "klein_mit_unterstrich" und Variablen "kleinOhneUnterstrich". Ist das zu sehr "Nicht-Python" für die Variablen?
Ich meine, so sehe ich ob es sofort ob es eine Funktion oder eine Variable ist.

Vielen Dank im Voraus :-) Mira

Re: Namenskonvention - wie wichtig?

Verfasst: Donnerstag 10. Dezember 2020, 16:29
von __deets__
Ich sehe dann nicht mehr, DasEsSichHierbeiNichtUmEineKlasseHandelt. Dafür ist nämlich camel case in PEP8 vorgesehen. Das ist der offizielle style guide.

Ob etwas eine Funktion ist oder nicht erkenne ich an den folgenden Klammern.

Re: Namenskonvention - wie wichtig?

Verfasst: Donnerstag 10. Dezember 2020, 16:41
von Miranda
__deets__ hat geschrieben: Donnerstag 10. Dezember 2020, 16:29 Ich sehe dann nicht mehr, DasEsSichHierbeiNichtUmEineKlasseHandelt. Dafür ist nämlich camel case in PEP8 vorgesehen. Das ist der offizielle style guide.

Ob etwas eine Funktion ist oder nicht erkenne ich an den folgenden Klammern.
Variablen haben in Java einen kleinenBuchstabenAmAnfang, Klassen haben bei jedem Wort einen GrossenBuchstabenAuchAmAnfang.

Das scheint mir sinnvoll?

Re: Namenskonvention - wie wichtig?

Verfasst: Donnerstag 10. Dezember 2020, 16:55
von Sirius3
@Miranda: es ist aber nicht die Konvention, die es in Python gibt. Ich hatte noch nie den Fall, dass es kompliziert wäre, Funktionen von Variablen zu unterscheiden.

Re: Namenskonvention - wie wichtig?

Verfasst: Donnerstag 10. Dezember 2020, 17:11
von __blackjack__
@Miranda: In Java werden Variablen und Methoden doch auch nach der gleichen Konvention benannt, da gibt es doch auch kein Problem die auseinander zu halten. Was würdest Du denn zu Java-Code sagen bei dem jemand anfängt namen_mit_unterstrichen für Variablen zu verwenden um die von Methoden unterscheiden zu können?

Letztlich sind Funktionen *auch* Variablen, und man erkennt Funktionen/Methoden in der Regel daran, dass der Name eine Tätigkeit beschreiben, im Gegensatz zu eher ”passiven” Werten.

Re: Namenskonvention - wie wichtig?

Verfasst: Donnerstag 10. Dezember 2020, 17:26
von Miranda
__blackjack__ hat geschrieben: Donnerstag 10. Dezember 2020, 17:11 Letztlich sind Funktionen *auch* Variablen, und man erkennt Funktionen/Methoden in der Regel daran, dass der Name eine Tätigkeit beschreiben, im Gegensatz zu eher ”passiven” Werten.
Das scheint mir logisch.

Vielen lieben Dank! Auch für die anderen Antworten :-)

Re: Namenskonvention - wie wichtig?

Verfasst: Donnerstag 10. Dezember 2020, 18:53
von nezzcarth
Noch mal zusammenfassend: Dein Kollege hat leider recht. Es gibt, wie die anderen schon meinten, eine offizielle Konvention, PEP8, an die man sich wirklich halten sollte. Solche Konventionen gibt es zwar auch bei anderen Sprachen, aber bei Python legt man nach meinem Eindruck schon gesteigerter Wert drau, dass man sich an diese Konventionen (und generell Best Practices) hält. Abweichungen davon, wenn sie nicht sehr gut begründet sind, werden auch eher kritisch gesehen. Deine Benennung würde dir zum Beispiel auch von einem Linter als Korrektur-bedürftig angezeigt.

Ab und zu sieht man Code, der sich nicht an die Konventionen hält. Der ist dann oft entweder relativ alt, oder es deutet dass der Programmierer die Konventionen nicht kennt (oft sind das Menschen, die in Python versuchen so zu programmieren, wie sie es von einer anderen Sprache kennen) oder bewusst ignoriert. Persönlich ist das für mich immer ein Zeichen, den Code etwas kritischer als sonst anzusehen.

Re: Namenskonvention - wie wichtig?

Verfasst: Donnerstag 10. Dezember 2020, 19:01
von __blackjack__
Das mit dem gesteigerten Wert finde ich interessant, denn wie ist das denn beispielsweise bei Java? Ich habe da noch nie gesehen das jemand Unterstriche in Namen oder kleingeschriebene Klassen verwendet. Obwohl man da nicht dauernd Hinweise drauf liest. Die Leute kommen da anscheinend gar nicht auf die Idee das anders zu machen als sie es in der Standardbibliothek vorfinden. Aber bei Python dann schon. Vielleicht wird bei Python gar nicht gesteigerter Wert auf die Namen gelegt, sondern die Neunutzer legen gesteigerten Wert darauf sich *nicht* an die Konventionen zu halten. 😎

Re: Namenskonvention - wie wichtig?

Verfasst: Donnerstag 10. Dezember 2020, 20:06
von nezzcarth
__blackjack__ hat geschrieben: Donnerstag 10. Dezember 2020, 19:01 Vielleicht wird bei Python gar nicht gesteigerter Wert auf die Namen gelegt, sondern die Neunutzer legen gesteigerten Wert darauf sich *nicht* an die Konventionen zu halten. 😎
Interessanter Twist, könnte sein ;)