Path: csiph.com!weretis.net!feeder8.news.weretis.net!news1.tnib.de!feed.news.tnib.de!news.tnib.de!.POSTED.torres.zugschlus.de!not-for-mail From: Marc Haber Newsgroups: de.comp.lang.python Subject: Re: [Python-de] Re: Code Style Review Date: Mon, 28 Nov 2022 21:52:36 +0100 Organization: private site, see http://www.zugschlus.de/ for details Message-ID: References: <480b80d21e58d280c437b4854bfc7cf1@posteo.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Date: Mon, 28 Nov 2022 20:52:36 -0000 (UTC) Injection-Info: news1.tnib.de; posting-host="torres.zugschlus.de:85.214.160.151"; logging-data="1750447"; mail-complaints-to="abuse@tnib.de" X-Newsreader: Forte Agent 6.00/32.1186 Xref: csiph.com de.comp.lang.python:5867 c.buhtz@posteo.jp wrote: >Neben PyLint könntest du auch nochmal "flake8" auf den Code loslassen. Das war eine gute Anregung, vim-ale hat das direkt aufgegriffen und noch ein paar Anregungen im Code hinterlassen. >Die Frage ist, warum du solche PyLint Ausnahmen ("# pylint:") definiert >hast. IMHO benötigt man dafür einen wirklich triftigen Grund; eine >strenge Indikation. Die Hinweise und Meldungen von Lintern haben ihre >Berechtigung und sollten nicht unterdrück werden. Das sehe ich mindestens teilweise anders. Wenn ich irgendwo explizit hinschreibe, dass eine Funktion eine globale Variable verwendet (wie z.B. das dictionary, in dem die Konfiguration drin steht) und der Linter das unkonditional anmeckert nur allein weil das Schlüsselwort benutzt wurde ergibt das für mich keinen Sinn: Wenn ich das nicht gewollt hätte hätte ich es nicht hingeschrieben. Gerade für die Konfiguration halte ich die globale Variable auch für den vernünftigen Weg, das wirklich überall bekannt zu machen. Die Alternative, jeder Funktion das Konfig-Dictionary als Parameter einzufüllen, finde ich noch schlechter lesbar. Wie ist in Python das normale Idiom für sowas? Und das hier: |debug = 0 |if args.debug: | debug = 1 zu flaggen mit "ey, debug ist eine Konstante, schreib die gefälligst groß" finde ich einen echten Bug. Dass das keine Konstante ist, ergibt sich doch direkt aus dem Code. >Neben den Lintern würde ich dir noch empfehlen, ein paar mehr Leerzeilen >zu machen. Das erhöht IMHO die Lesbarkeit, gerade bei verschachtelten >Strukturen. Natürlich ist das Geschmacksache bzw. eine Frage des >Team-Konsent. Ja, das ist eine Geschmackssache, ich habe lieber mehr Informationen auf dem immer zu kleinen Bildschirm. Aber das mag sich ändern wenn ich mich in der Sprache ein bissche mehr daheim fühle. >while True: > > time.sleep(30) > > if debug > 0: > print('run evaluate() and cleanup_table() from main loop') > > cleanup_table() > > if debug > 0: > print_table() > > evaluate() Dafür habe ich noch nicht genug python-Auge um zu sehen dass das alles zusammen gehört (meinen Augen fehlt die schließende Klammer, aber das ist halt so). Vermutlich stimme ich Dir da in einem halben Jahr zu. Grüße Marc -- -------------------------------------- !! No courtesy copies, please !! ----- Marc Haber | " Questions are the | Mailadresse im Header Mannheim, Germany | Beginning of Wisdom " | Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834