Re: [Python-de] Wie sieht Python fuer mich aus?
Am 09.01.2017 um 20:08 schrieb Sven R. Kunze:
Man kann viel tief-geschachtelten Quelltext auf einen einfach/linearen Programmfluss ohne wenn und aber zusammenfassen.
Kein if und else. Alles eine Einrückungstiefe. Liest sich auch wesentlich entspannter.
Wie soll ich das etwa bei if not os.access(ordnername, os.F_OK): os.makedirs(ordnername) machen?
2) mach diese Zeilen kürzer
Auf Kosten Von Variablennamenlänge?
Nein, auf keinen Fall. Es geht mehr in die Richtung von:
- mehr Variablen für Zwischenergebnisse
Wo dann die Namen zu Verwirrung führen können. i52, i53 i54 ..
- die richtigen Python-Idiome anwenden
Das sehe ich pragmatisch, aber nicht stur. Die Suche nach Python-Idiome hat mich zu nützlichen Tipps geführt, weil etliches in den Bücher, an die ich mich orientiere, nicht enthalten ist.
- Default-Objekte anstelle von None verwenden
Extra Objekte erzeugen?
etc.
Hermann der meint, dass sich auch Python schneller ändert, als wie er lernt. -- http://www.hermann-riemann.de
On 09.01.2017 20:59, Hermann Riemann wrote:
Wie soll ich das etwa bei
if not os.access(ordnername, os.F_OK): os.makedirs(ordnername)
machen?
Zum Beispiel folgendes verwenden: os.makedirs(ordnername, /exist_ok=True/)
- mehr Variablen für Zwischenergebnisse
Wo dann die Namen zu Verwirrung führen können. i52, i53 i54 ..
Richtig. Deswegen sprechende Namen. :)
- die richtigen Python-Idiome anwenden
Das sehe ich pragmatisch, aber nicht stur. Die Suche nach Python-Idiome hat mich zu nützlichen Tipps geführt, weil etliches in den Bücher, an die ich mich orientiere, nicht enthalten ist.
Finde ich gut!
- Default-Objekte anstelle von None verwenden
Extra Objekte erzeugen?
Ich geb mal ein Beispiel. Folgende Ausgangssituation: def xxx(input): if input: liste = input.split() for item in liste[:-1]: print(item, end='') print('#####', end='') if len(liste) >= 1: print(liste[-1]) erster Schritt (Reduktion der Einrückung): def xxx(input): input = input or '' # Default-Objekt:'' liste = input.split() for item in liste[:-1]: print(item) print('#####') if len(liste) >= 1: print(liste[-1]) zweiter Schritt (Idiom erkennen): def xxx(input): input = input or '' liste = input.split() print('#####'.join(liste)) Ich gebe zu, das Beispiel ist ein wenig konstruiert, aber es gibt oft einen Weg, kürzer und einfacher zu schreiben. :) Sven
participants (2)
-
Hermann Riemann -
Sven R. Kunze