[Python-de] Konventionen

Florian Diesch diesch at spamfence.net
Sa Jul 31 16:42:19 UTC 2010


Ulf Rompe <python-de at rompe.org> writes:

> Am 30.07.2010 13:49, schrieb Sebastian Bechtel:
>> Es ist ja Möglich, mit from ... import ... sehr spezifisch Dinge zu
>> importieren in den Namenraum.
>
> Meines Erachtens gehört diese Möglichkeit zu den größten
> Design-Schwächen von Python (was nur beweist, dass Python schon
> ziemlich perfekt ist, wenn mir nichts schlimmeres daran
> auffällt). Wenn ich mich präzise ausdrücken kann, warum sollte ich es
> dann nicht tun? 

Mit from ... import ... kann ich präzise ausdrücken, *was* ich
importieren will. Das kann manchmal sinnvoll sein, z.B. wenn ich aus
einem großen Modul nur einige wenige Namen importieren will.


> Schreibe ich nur time() in meinen Code, wird
> vermutlich noch jedem Leser klar sein, um was es geht. 

time() finde ich da ein eher schlechtes Beispiel, es gibt vermutlich
eine ganze Menge Module, die eine Funktion time() implementieren.

Ein typisches Beispiel, wo from ... import .. verwende, ist z.B. ein
Modul "config", das einen dict "config" mit Konfigurationseinstellungen
enthält. Da ständig config.config['foo'] statt config['foo'] zu
schreiben, macht den Code IMHO nicht übersichtlicher, sondern nur länger
(solange ich den Namen "config" konsequent nur für dieses Objekt
benutze).



> Nun könnte man argumentieren, dass das zumutbar sei - aber
> welcher Gewinn steht dem gegenüber? Dass man ab der dritten Verwendung
> einige Bytes spart? 

Die jedesmal explizit angegebenen Modulnamen können dazu führen, dass
Zeilen oder Ausdrücke sehr lang werden oder ungünstig umbrochen werden
müssen. Dadurch kann der Code evtl. unübersichtlicher werden.




   Florian
-- 
<http://www.florian-diesch.de/linux/asciipinguine.html>



Mehr Informationen über die Mailingliste python-de