Simples OOP

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
BlackJack

Ich gehöre wohl zu den religiösen Fanatikern. Ich mache die Leute regelmässig drauf aufmerksam. Einige Empfehlungen sind, wie ich ja schon geschrieben habe, Geschmackssache, aber im Grunde sind die dazu da um die Kommunikation zu vereinfachen. Namen in reinen Grossbuchstaben für Konstanten zu verwenden ist sprachübergreifend so weit verbreitet, dass es einfach sehr verwirrt wenn sich solche Variablen plötzlich verändern.

Oder die maximal 80 Zeichen pro Zeile: In meinem Browser führen sehr lange Zeilen zu einem horizontalen Scrollbalken und auch die Absätze im Fliesstext in den Beiträgen werden dann auf die volle Breite formatiert. Das ist einfach superanstrengend zu lesen.

Klar, wenn man etwas für sich selbst entwickelt, kann man schreiben wie man möchte, aber wenn das dann hier zur Diskussion oder eine Frage gestellt wird, dann wäre es schon gut wenn man einen gemeinsamen Nenner hat.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

poker hat geschrieben:die allgemeine Versessenheit auf PEP8 und den Zen
Hallo poker!

Wäre da nicht der Zen, und dass sich so viele wie möglich an den Styleguide halten, wäre Python nicht halb so viel wert. Python besteht aus der Sprache selber und aus der Einstellung der Programmierer, die sie benutzen.

Es ist einfach so, dass viele Tipps aus PEP8 einen Sinn haben. Es ist einfach so, dass man Code besser lesen kann, wenn man anhand der Schreibung von Objektnamen darauf schließen kann mit was man es zu tun hat. -- Und jetzt der wichtigste Zusatz: "ohne dass man bei jedem Programm umdenken muss." Am Schlimmsten sind dabei die Sternchenimporte aus Bequemlichkeit. Die machen Code, bei excessivem Gebrauch, für Außenstehende fast unlesbar.

Lieber ein paar Zeilen mehr und dafür selbsterklärenden und gut lesbaren Code. (Leider halten es manche Leute für "Cool", so viel Arbeitsschritte wie möglich in einer Zeile Code zu verpacken.)

----

Andere darauf aufmerksam zu machen, dass Code lesbarer und durchschaubarer wird, wenn man sich großteils an PEP8 hält -- ist gut für uns alle und nicht einfach eine Spinnerei.

PEP8 gehört zu Python dazu wie die Einrückung nach ``if``.

mfg
Gerold
:-)

PS: Könnte mal jemand PEP8 auf deutsch übersetzen? Und hier ins Board stellen?
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Ja, ich bin Verfechter der PEP 8, und das aus gutem Grund. Die oft nachgesagte deutsche Gründlichkeit ist nur einer davon.

Es kann mir doch niemand erzählen, ein bisschen Übersicht im Quelltext wäre zuviel verlangt, Mehraufwand, das Ergebnis nicht wert oder was auch immer. Wenn man schon zwischen logischen Einheiten keine Leerzeilen zur Strukturierung macht, dann ist man selbst für Python noch sowas von zu faul ;)

Weisheit: Code wird einmal geschrieben, aber sehr oft gelesen.

Gerade wenn hier noch Beispielcode präsentiert wird, aus dem andere lernen sollen, dann sollte man es a) sauber tun, damit sie auch verstehen, worauf es ankommt und wie es gedacht ist und b) sollte man mit gutem Beispiel vorangehen, um nicht als Multiplikator für schlecht lesbaren Code zu fungieren. Denn irgendwann muss man das möglicherweise mal ausbaden ;)

Sauber zu programmieren ist in meinen Augen eine Selbstverständlichkeit! Dass das viele nicht so sehen ist traurig, aber Realität. Trotzdem mache ich das für andere und für mich selbst, weil ich meinen Code *sehr* oft lese, um ihn zu optimieren. Für veröffentlichte Dinge gilt das noch einmal mehr.

Es geht hier nicht rein um die PEP 8, sondern um ganz grundlegende Dinge, die irgendwo sogar mit Disziplin (ok, da bin ich manchmal nicht unbedingt das Vorbild ;)) sowie Respekt vor sich und anderen zu tun haben. Die PEP 8 ist nur ein guter, akzeptierter Konsens, der die Welt ein kleines Stückchen besser macht :)

Generell sind Code Conventions eine schöne Sache, nur leider in anderen Communities (allen voran PHP) nicht verbreitet, bekannt oder einfach weitgehend nicht-existent.

Blablabla, you geht the point. Wenn man schon merkwürdigen Code schreibt, dann aber bitte sauber ;)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mir geht es da ganz ähnlich wie meinen Vorrednern, ich bin auch ein Befürworter des PEP8. Weißt du, was ich mit Codesnippets mache, die nicht dem PEP8 enstprechen? Als erstes schreibe ich sie (sofern das zeitlich von der länge vertretbar ist) in PEP8-konformen Code. Dann stört mich der Stil nicht mehr und ich kann mich dem Inhalt des Codes widmen.

Was dieses von Y0Gi angedeutete Codebeispiel angeht, so sieht man das genau an den Tkinter-Leuten, die sich ihre Tutorials durchlesen und einfach Module per *-Import reinziehen, weil sie es nicht besser wissen. Und dabei hat diese Art des Imports ja bekanntlich mehr als genug Nachteile um sie schlichtweg nicht zu nutzen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
tiax
User
Beiträge: 152
Registriert: Samstag 23. Juli 2005, 17:28
Kontaktdaten:

Bei TKinter hab ichs immer drauf geschoben, dass mir das "alt" vorkam (keine Ahnung obs das auch ist), schlimm fand ich das allerdings bei SQLAlchemy, da waren sehr viele Dokumentationen und Einführungen mit

Code: Alles auswählen

from sqlalchemy import *
wenn man sich bei einer Programmiersprache aber sowieso an Regeln halten muss (Syntax und so weiter), kann man sich doch auch gleich an so Dinge wie PEP8 halten.
Ne invoces expellere non possis
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]
CrackPod
User
Beiträge: 205
Registriert: Freitag 30. Juni 2006, 12:56

poker hat geschrieben:2. Die meisten hier sind doch eher Hoby-Programmierer die Python für sich entdeckt haben um alltägliche Probleme zu lösen oder gar die Lösungen dafür mit Python zu automatisieren. Wenn dann einer hier fragt was er bei seiner Lösung falsch gemacht hat, finde ich es total daneben ihn immer und wider auf PEP8 und Zen hinzuweisen. Das ist nicht nur penetrant und arrogant sondern auch lästig ;) Denn er will ja gerne einen Denkanstoß/Lösung für sein Problem und nicht über Stylguids debattieren und sich für **seinen** Stil rechtfertigen. Tut nicht not oder?
Du hast IMHO einen wichtigen Punkt vergessen:
Ich wurde auch schon einige male auf PEP-8 aufmerksam gemacht worden (ich bin letztendlich froh drüber, aber das sei mal dahingestellt) und das nachdem ich eine Frage zu einem "Programm" gestellt hatte.
Allerdings wurde in den Postings(meist von BlackJack, Leonidas, Gerold oder sonstigen sehr aktiven Mitgliedern) nicht nur auf Pep-8 hingewiesen. Im Gegenteil: Es wurde eine Zeile bzw ein Satz geschrieben, ich solle mir doch mal Pep-8 durchlesen.
Nach diesem Tipp/Bitte o.ä. wurden mir jedesmal einige sehr hilfreiche Tipps gegeben.
Und das finde ich kommt in deinem Posting nicht ganz so rüber, sondern eher, dass nur gesagt wird(mal ganz grob allgemein ausgedrückt - nicht falsch verstehen!): "Dein Code ist nicht PEP-8 konform, der ist schlecht, den les ich nicht".
Sowas habe ich noch nie gelesen und ich denke, das wurde auch nie (zumindest von "fähigen" Mitgliedern) geschrieben.
LG Tobsl
Antworten