[Python-de] Re: Code Style Review
Marc Haber <[email protected]>
| Newsgroups | gmane.comp.python.general.german |
|---|---|
| Message-ID | <[email protected]> |
Hallo,
On Fri, Dec 02, 2022 at 09:29:58AM +0000, Matthias Urlichs wrote:
> On 01.12.22 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?
>
> Wieso sollte man die nicht instanziieren?
Ich hatte Dein Konstrukt nicht richtig verstanden.
> >> 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)
>
> Du hast
>
> logging.basicConfig(level=logging.DEBUG if args.debug else
> logging.WARNING)
> log = logging.getLogger("main")
>
> übersehen.
basicConfig möchte ich nicht verwenden, weil damit mein bevorzugtes
Konstrukt, den Debuglevel sowohl aus dem Konfigurationsfile als auch aus
der Kommandozeile zu setzen UND über das Lesen des Konfiguationsfiles
und dem Parsen der Kommandozeile bereits sinnvoll loggen zu können nicht
geht. bsaicConfig kann man nur einmal benutzen, dann sind die
Einstellungen für den Rest der Lebenszeit des Loggers fest.
> Außerdem meinte ich eher die eigentlichen Logging-Aufrufe. Da kannst du
> dir die if-Abfrage plus Einrückung sparen und einfach
>
> log.debug("Test %d", 42)
>
> schreiben.
Ja, dafür zahlt man halt an anderer Stelle einen Preis.
> > Das kann ich mir wohl nicht aussuchen, weil ich hier mit dem paho-Modul
> > für MQTT koexistieren muss.
>
> Musst du das wirklich?
Nein, muss ich freilich nicht. Aber ich möchte mich jetzt nicht
verkünsteln. Die Aufgabe, die das Programm erledigen soll, ist einfach,
das Programm dient mir nebenbei auch noch dazu, ein Gefühl für die mir
neue Programmiersprache zu entwickeln. Und dieses Gefühl bekomme ich
nicht, wenn ich gleich alle Lösungen verwende die für großindustrielle
Umgebungen skalieren müssen.
> "trio_paho_mqtt" funktioniert auch, wenn du anyio sagst dass es das
> Trio-Backend verwenden soll.
Dann müsste ich zusätzlich noch trio lernen. Das ist mir aktuell etwas
viel, ich möchte das Programm noch dieses Jahr fertig haben, sonst lacht
mich meine Frau aus.
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]