Python - tolle Sprache krankes Styleguide

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

mimi hat geschrieben:Vim habe ich so eingestellt dass ein Tab mit drei Leerzeichen dargestellt wird - Ein anderer Editor für Sourcecode kommt mir nicht ins Haus.
Es sollten vier sein ;-)
mimi hat geschrieben:Geschickt formuliert: Anfangs hattest Du mich "kalt erwischt". Wie Dir aber sicherlich aufgefallen ist habe ich nur meine Meinungsäußerung gesondert formatiert. Antworten schreibe ich im Fließtext. Aber genau darum geht es: Ich entscheide wie sich mein Text, meine Anweisungen am Bildschirm präsentieren.
Nein, damit entscheidest du, wie der Text bei uns aussieht:
http://www.python-forum.de/post-139498.html#139498 und http://www.python-forum.de/viewtopic.php?p=139615.
Das Leben ist wie ein Tennisball.
BlackJack

An dieser Stelle mal wieder der Tipp: ``from __future__ import braces``. :-)
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

@Defnull: Trenn doch einfach alle "inputs" und alle Fehlermeldungen in zwei Listen, verknüpfe das mit zip() und nutze eine For Schleife. Dann kannst du dir die zwei extra Zeilen für das if auch gönnen. Wenn du Dinge wegen "logischer Abgeschlossenheit" in eine Zeile quetschen willst, dann meist doch nur, weil du diese Dinge sowieso duplizierst und das Muster gleich erkennen willst. Stattdessen solltest du die Duplikation beseitigen und das Muster einmal hinschreiben.
Benutzeravatar
Klip
User
Beiträge: 98
Registriert: Donnerstag 10. August 2006, 20:39

Mir ist die erzwungene Einrückung bei Python ehrlich gesagt noch nie negativ aufgefallen. Ich würde in jeder anderen Programmiersprache genau so einrücken, wie ich es bei Python muss, deswegen gab es zwischen dem Interpreter und mir noch nie einen Ehekrach.

Dafür ist bis zu einem gewissen Anteil garantiert, dass man lesbaren Code erhält, wenn man Python-Code von Dritten liest, was bei Sprachen wie Perl eher selten der Fall ist.

Also wo liegt das Problem?
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Klip hat geschrieben:
Also wo liegt das Problem?
Das ist wie mit dem Tempolimit auf Autobahnen: Man will halt die Freiheit haben, auch wenn man sie eigentlich gar nicht nutzen kann oder gar will.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Auch ich schließe mich an: Das "Problem" ist im Grunde rein theoretischer Natur. Niemand, der einigermaßen lesbaren Code schreiben will, würde innerhalb desselben Quelltextes mal 2, mal 3, mal 4 Leerzeichen für seine Einrückungen nehmen. Man stellt sich das normalerweise einmal im Editor ein und gut ist. Möchte man sich nicht an PEP8 halten (warum auch immer), kann man ja ruhig durchgängig mit 2 Leerzeichen oder mit 8 Zeichen langen Tabs arbeiten. Da zwingt einem Python nichts auf.

Die Einrückungspflicht der Programmiersprache als Manko anzulasten, halte ich für verfehlt. Dann müsste man auch anderen Sprachen anlasten, dass sie Semikolons und Braces erzwingen. Irgendwie muss dem Parser halt deutlich gemacht werden, auf welcher Stufe bestimmte Codeteile stehen und wann eine Zeile endet. Ich finde, gerade hier vereinfacht Python sogar vieles: Die genannten Sachen fallen ja nicht komplett weg, sondern sind freiwillig. Ich kann Semikolons nutzen, um mehrere Zeilen in eine zu quetschen und ich kann Klammern verwenden, um beispielsweise Funktionen mit vielen Argumenten übersichtlicher zu gestalten (eine "Zeile" ist für Python erst dann vorbei, wenn die schließende Klammer kommt).

Im Grunde ist das also alles viel weniger Zwang als du vermutest. ;)
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

snafu hat geschrieben:Ich kann Semikolons nutzen, um mehrere Zeilen in eine zu quetschen
Witzig, ich bin nun schon seit Jahren aktiver Python Entwickler, aber das ist mir neu :|
Ein deutliches Zeichen dafür, das man sowas eigentlich nicht braucht.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Es gibt hier ein paar engagierte Codegolfer. Die brauchen das z.B. ;)
BlackJack

Wenn man das Zeilenendezeichen mitzählt, dann sind zwei Zeilen genauso "teuer" wie zwei Anweisungen durch ein Semikolon getrennt. Gewinn bringt das also erst, wenn man mehrere Anweisungen in einem eingerückten Block hat.
Antworten