[Python-de] Konventionen

Andi Albrecht albrecht.andi at googlemail.com
Fr Jul 30 12:38:54 UTC 2010


Hallo Sebastian,

2010/7/30 Sebastian Bechtel <me at sebastian-bechtel.info>:
> Hallo,
>
> ich bin noch blutiger Python Anfänger aber durch meinen Urspruch von PHP komm ich mit der Sprache eigentlich herrlich klar.

na dann: Willkommen!  :)

>
> Ich hätte da allerdings ein paar Fragen zu gewissen Konventionen in Python:
>
> Zum einen bin ich bei der Benennung der Module sehr verwundert. Ich hätte eigentlich erwartet, dass Module entweder komplett klein geschrieben werden sollten oder als CamelCase. Nun treffen mich aber selbst in der Standard Bibliothek beide Typen an und ich habe jetzt keinen Schimmer, nach welcher Konvention ich meine Module benennen soll. Gibt es diesbezüglich überhaupt eine Konvention?

*Die* Referenz für Style-Konventionen in Python ist die PEP8:
http://www.python.org/dev/peps/pep-0008/
Auch wenn natürlich jedes Projekt seine eigenen Konventionen hat, die
in PEP8 dargestellten Style-Konventionen kann man im Zweifelsfall
guten Gewissens zu Rate ziehen.

Bei Fragen, die eher in Richtung Programmierrichtlinien (statt
Style-Konventionen) gehen, kann ich den Python Style Guide von Google
empfehlen: http://google-styleguide.googlecode.com/svn/trunk/pyguide.html
Aber das ist eher eine persönl. Empfehlung.

Die CamelCase-Module in der Standardbibliothek sind zumeist schon
seehr lange unter diesen Namen in der Standard-Bibliothek. In Python
3.x wurden viele Namen vereinheitlich (siehe z.B. configparser:
http://docs.python.org/py3k/library/configparser.html#module-configparser).

>
> Zweitens wäre da der Modul import.
>
> Es ist ja Möglich, mit from ... import ... sehr spezifisch Dinge zu importieren in den Namenraum.
>
> In PHP wo ich her komme gibt es das zwar auch in der Art (es wird ein Alias auf Namensraum + Klasse gesetzt) aber das verwendet eigentlich Niemand, zumindest habe ich es noch nie gesehen.
>
> In Python habe ich den Einsatz davon bereits gesehen. Es wird zwar nach meinem ersten Eindruck sehr global importiert (oft nur das Basis Packet) aber teilweise werden auch wirklich einzelne Funktionen importiert. Jetzt würde mich natürlich interessieren, ob da ein System steckt. So nach dem Motto Funktionen wie time.time() (statisch + wahrscheinlich relativ einzigartig) importieren wir jetzt direkt während wir urllib.URLOpener nicht direkt importieren, sondern nur urllib, weil es noch andere URLOpener geben könnte, die man verwenden könnte irgendwo.
>
> Also was ich meine, macht das jeder frei Schnauze so wie ich das eben mal angedeutet habe wie ich denken würde, oder gibt es da von Sprachentwicklern und Community wirkliche Konventionen/Best Practice.
>
> Gruß Sebastian
>
>
> _______________________________________________
> python-de maillist  -  python-de at python.net
> http://python.net/mailman/listinfo/python-de
>



Mehr Informationen über die Mailingliste python-de