Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #5885

[Python-de] Re: Code Style Review

Path csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail
From Stefan Schwarzer <sschwarzer@sschwarzer.net>
Newsgroups de.comp.lang.python
Subject [Python-de] Re: Code Style Review
Date Fri, 2 Dec 2022 00:07:48 +0100
Lines 62
Message-ID <94754556-691b-f255-ba37-eaf0f59c2dfa@sschwarzer.net> (permalink)
References <tm2jhn$1k5h8$1@news1.tnib.de> <480b80d21e58d280c437b4854bfc7cf1@posteo.de> <tm372k$1lddf$1@news1.tnib.de> <5a5ca26b-89eb-67c7-9ed2-b590eecc23a6@noris.de> <Y4kO61HT8XBTzKFs@torres.zugschlus.de>
Mime-Version 1.0
Content-Type text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding 8bit
X-Trace news.uni-berlin.de OKon4lczk/aAIXWBJYAmUwU5qufgHhKsuAcNbhU1X9Og==
Authentication-Results mail.python.org; dkim=none reason="no signature"; dkim-adsp=none (unprotected policy); dkim-atps=neutral
User-Agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.24) Gecko/20100411 Thunderbird/2.0.0.24 Mnenhy/0.7.6.666
Content-Language en-US, de-DE
In-Reply-To <Y4kO61HT8XBTzKFs@torres.zugschlus.de>
X-Provags-ID V03:K1:154LtlQRYLDBmjgmHi/jkTQWWzALtpOuGv0XAo3HffVsahJy4gY rOHRWD3eqK6KkKDwbZ2STuUOcOGj/FUNSs4hxFc41Djx7VjY8wm9Fx6vlidkK+jqWkGbk3h IQRx9hUnFU1oCTbpJ4Q1KnpehnWC68t8ocwXWN3GZd6EskYMufKJf5DAsCT13qT7dEHqBns zd8yDYOS8dIxuiMw9SftQ==
X-Spam-Flag NO
X-UI-Out-Filterresults notjunk:1;V03:K0:PSvVpH7WUh0=:ZkFCM7XbQg7JkmWeprhucW vY1VnVnWNLr6rcNb8iWZ/0vbKQkbOwqwMCk8ez/mf1bBBqi8CHxWBgrOslHrPb9jnhM6qaab9 WM3kCg1UgyIHzDWg25p+f3dTX/IOV3hPDKVEBbbDnih7gZ6x+LUrA/MHqXKc8ZEG7lM+zq5Xd GvIK5OlmSxI84kWsefVB2qbdDfi9UDYbk7fcnlaWjy8pkYbvjrPDNsEJKCWBHO6HTbAPa7Gqi tF3QrCObWYyK2XefKKXYeaj4t1nBr9/O06FyYJNYVhuY9cyShFFhLi+Iw4/7uDt91MdtLxhQ/ jBIRnNgVf+RZfgQifEXGMBIxox+tA8sSGcn7O20B+0Rp2vE+WvFtBqLjLrBh5B58fSnEj+JSp aLyaws7sdsEpFCj1NUqIy/+FC3kgaEgNibFY5ID6S6uPYB2pwuT6ou8Asat6WrFT5H4JJ8+Rt S6c3qw0frnUGG8YiSDIkeGdut+kCbit+7F2zbrIIe+ZHBZ7FnvLKNdvss0Xmvffsc2j8cYIow 6PHcdi4Xi4pFADYQ4HrcOdE8tYFOg2F8e2XIZHh9Sj3Kh3lLvtiWYKGcHgey19XU5VcBwIMxf tTpGBaJmbT9eVZ95l7HAYjSfGbCWZjd2PwmXMaQpZ07tH8XZGcDnbKhm3ws+O4GbPpgJNJorC cmzgI3CDqKRvNOa4uSIexY8wAXOINYK8Jqzy4/9Rr/VPNgj9vPtmGVd0LB7j+jfeBkfJUKvON pg8jFqqaz4HGthXpDZ6nJZ2DaiMH4BEGN5s+/G2xv6BdZ3NUFTFOwPE89xLl3yipx/KPx4RvC TOUF3wZzxtGz/kIE6K0/9BhmE0qHQ==
Message-ID-Hash 5URA3SSOVFPWR4PWHYTCMHMGKU5ACQE2
X-Message-ID-Hash 5URA3SSOVFPWR4PWHYTCMHMGKU5ACQE2
X-MailFrom sschwarzer@sschwarzer.net
X-Mailman-Rule-Misses dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-python-de.python.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version 3.3.7
Precedence list
List-Id Die Deutsche Python Mailingliste <python-de.python.org>
Archived-At <https://mail.python.org/archives/list/python-de@python.org/message/5URA3SSOVFPWR4PWHYTCMHMGKU5ACQE2/>
List-Archive <https://mail.python.org/archives/list/python-de@python.org/>
List-Help <mailto:python-de-request@python.org?subject=help>
List-Owner <mailto:python-de-owner@python.org>
List-Post <mailto:python-de@python.org>
List-Subscribe <mailto:python-de-join@python.org>
List-Unsubscribe <mailto:python-de-leave@python.org>
Xref csiph.com de.comp.lang.python:5885

Show key headers only | View raw


On 2022-12-01 21:30, Marc Haber wrote:
> On Wed, Nov 30, 2022 at 10:47:53AM +0000, Matthias Urlichs wrote:
>> On 28.11.22 21:52, Marc Haber wrote:
>>> 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?
>>
>> Du verpackst deine Funktionen in ein Objekt und gibst __init__ die
>> Konfig als Parameter.
> 
> Auch wieder so eine Klasse die man niemals instanziiert? Dann sind die
> "globals" in der Klasse gekapselt und nicht im Modul, das ist doch nur
> eine Begrifflichkeit.

Ich denke auch, das ist sehr ähnlich.

>> Globals wie "debug" oder halt "DEBUG" gehören sich nicht, finde ich;
>> dazu gibt es das "logging"-Modul, dem man (wenn's notwendig wird) eh
>> viel flexibler sagen kann, was es loggen soll, als mit einer Konstanten.
>> Außerdem ist "logging" weniger programmierfehleranfällig (wer hat noch
>> nicht versehentlich nicht-debug-Code unter ein "if debug:" gestellt …)
>> und visuell übersichtlicher. Und weniger tippen muss man auch …
> 
> Weniger tippen kann ich jetzt nicht sagen, ich hab hier jetzt:
> logger = logging.getLogger(__name__)↲
> loggingStreamHandler = logging.StreamHandler()↲
> logger.addHandler(loggingStreamHandler)↲
> und weiter unten (da wo die Kommandozeilenparameter gelesen werden):
>      if args.debug:
>          loggingStreamHandler.setLevel(10)↲
>          logger.setLevel(10)↲
> und noch weiter unten (da wo die Konfigurationsdatei gelesen wird):
>     if not args.debug:
>          loggingStreamHandler.setLevel(config.debuglevel)↲
>          logger.setLevel(config.debuglevel)↲

In manchen Fällen kommt man auch mit dem Aufruf von
`logging.basicConfig` aus. Ich habe mir deinen Code aber
nicht genau angesehen, inwieweit das für dich anwendbar ist.

>> Im Übrigen würde ich, wenn du mehr als einen Job gleichzeitig machen
>> willst, dringend empfehlen, das "threading"-Modul in die Tonne zu treten
>> und dir stattdessen "anyio" genauer anzusehen.
> 
> Das kann ich mir wohl nicht aussuchen, weil ich hier mit dem paho-Modul
> für MQTT koexistieren muss.

Ich kannte `anyio` noch nicht und habe jetzt nur das
Inhaltsverzeichnis überflogen. Das ist nach meinem Eindruck
schon eine ganze Menge Komplexitäts- und damit Lern-Aufwand,
und dann stellt sich immer die Frage, ob es sich lohnt, so
eine komplexe Abhängigkeit zu nutzen, wenn man vielleicht
nur einen ganz kleinen Anteil davon braucht.

Mit dem Logging-Modul ist das ähnlich, aber da ist es
immerhin so, dass es so bekannt und "universell" ist, dass
viele damit sowieso schon gearbeitet haben.

Viele Grüße
Stefan

Back to de.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Code Style Review Marc Haber <mh+usenetspam1118@zugschl.us> - 2022-11-28 16:19 +0100
  [Python-de] Re: Code Style Review c.buhtz@posteo.jp - 2022-11-28 15:37 +0000
    [Python-de] Re: Code Style Review Christopher Arndt <chris@chrisarndt.de> - 2022-11-28 16:48 +0100
      [Python-de] Re: Code Style Review c.buhtz@posteo.jp - 2022-11-28 19:53 +0000
      Re: [Python-de] Re: Code Style Review Marc Haber <mh+usenetspam1118@zugschl.us> - 2022-11-28 22:07 +0100
        [Python-de] Re: Code Style Review Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2022-11-29 18:51 +0100
          [Python-de] Re: Code Style Review Marc Haber <mh+python-de@zugschlus.de> - 2022-11-29 21:44 +0100
            [Python-de] Re: Code Style Review Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2022-11-29 23:16 +0100
    Re: [Python-de] Re: Code Style Review Marc Haber <mh+usenetspam1118@zugschl.us> - 2022-11-28 21:52 +0100
      [Python-de] Re: Code Style Review c.buhtz@posteo.jp - 2022-11-28 22:38 +0000
        Re: [Python-de] Re: Code Style Review Enrik Berkhan <Enrik.Berkhan@inka.de> - 2022-11-29 06:03 +0000
        Re: [Python-de] Re: Code Style Review Marc Haber <mh+usenetspam1118@zugschl.us> - 2022-11-29 15:22 +0100
          [Python-de] Re: Code Style Review c.buhtz@posteo.jp - 2022-11-29 14:39 +0000
      [Python-de] Re: Code Style Review Matthias Urlichs <matthias.urlichs@noris.de> - 2022-11-30 10:47 +0000
        [Python-de] Re: Code Style Review Marc Haber <mh+python-de@zugschlus.de> - 2022-12-01 21:30 +0100
          [Python-de] Re: Code Style Review Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2022-12-02 00:07 +0100
            Re: [Python-de] Re: Code Style Review "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2022-12-03 14:32 +0100
          [Python-de] Re: Code Style Review Matthias Urlichs <matthias.urlichs@noris.de> - 2022-12-02 09:29 +0000
            [Python-de] Re: Code Style Review Marc Haber <mh+python-de@zugschlus.de> - 2022-12-02 18:02 +0100
    [Python-de] Re: Code Style Review Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2022-11-29 18:33 +0100
  [Python-de] Re: Code Style Review Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2022-11-29 18:18 +0100
    [Python-de] Re: Code Style Review Hans-Peter Jansen <hpj@urpla.net> - 2022-11-30 15:52 +0100
    [Python-de] Re: Code Style Review Marc Haber <mh+python-de@zugschlus.de> - 2022-12-01 21:16 +0100
      [Python-de] Re: Code Style Review Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2022-12-01 23:58 +0100
        [Python-de] Re: Code Style Review Marc Haber <mh+python-de@zugschlus.de> - 2022-12-02 18:10 +0100
          Re: [Python-de] Re: Code Style Review "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2022-12-03 14:36 +0100

csiph-web