[Python-de] Re: Code Style Review

Marc Haber <[email protected]>
Newsgroups gmane.comp.python.general.german
Message-ID <[email protected]>
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.

> Und wenn man nächstes Jahr zwei dieser Objekte gleichzeitig braucht,
> freut man sich, dass es sie schon gibt. :-)

Dann muss man aber doch die Klasse anders schreiben?

> 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)↲

Bin mir noch nicht sicher was da die richtige Bedingung sein muss,
eigentlich möchte ich dass args.debug ein config.debug überschreibt.

> 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.

Grüße
Marc


-- 
-----------------------------------------------------------------------------
Marc Haber         | "I don't trust Computers. They | Mailadresse im Header
Leimen, Germany    |  lose things."    Winona Ryder | Fon: *49 6224 1600402
Nordisch by Nature |  How to make an American Quilt | Fax: *49 6224 1600421
_______________________________________________
python-de Mailingliste -- [email protected]
Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an [email protected]
https://mail.python.org/mailman3/lists/python-de.python.org/
Mitgliedsadresse: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.