[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]