Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
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.
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.
__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.
@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.
@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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
__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
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.
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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
__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.