Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Marc Haber Newsgroups: de.comp.lang.python Subject: =?utf-8?q?=5BPython-de=5D_Re=3A_Code_Style_Review?= Date: Fri, 2 Dec 2022 18:10:50 +0100 Lines: 75 Message-ID: References: <25b8d1d4-d6e2-22ee-4bed-ec76227fa65d@sschwarzer.net> <62b38fd1-39a1-9867-9ac4-b50bda4a4ddd@sschwarzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: news.uni-berlin.de Badytt4+5cj5CS4oQ2DMGgCgnDN8dk4Pt4OsfaWblJwg== Authentication-Results: mail.python.org; dkim=none reason="no signature"; dkim-adsp=none (unprotected policy); dkim-atps=neutral Content-Disposition: inline In-Reply-To: <62b38fd1-39a1-9867-9ac4-b50bda4a4ddd@sschwarzer.net> User-Agent: Mutt/2.0.5 (2021-01-21) Message-ID-Hash: 2SVYVBXNNSCK2FJKTVTZ6ZWT4OJEKH4T X-Message-ID-Hash: 2SVYVBXNNSCK2FJKTVTZ6ZWT4OJEKH4T X-MailFrom: mh+python-de@zugschlus.de 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 Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Xref: csiph.com de.comp.lang.python:5888 On Thu, Dec 01, 2022 at 11:58:31PM +0100, Stefan Schwarzer wrote: > On 2022-12-01 21:16, Marc Haber wrote: > > On Tue, Nov 29, 2022 at 06:18:38PM +0100, Stefan Schwarzer wrote: > > > Du kannst einfach von überall aus dem Modul auf das > > > `config`-Objekt zugreifen und brauchst auch kein `global`. > > > Die Klasse wird nie instanziiert, sondern nur als Namespace > > > benutzt. > > > > Habe ich ausprobiert, funktioniert. Nur pylint meckert: > > too-few-public-methods: Too few public methods (0/2) > > Hihi, ja, das ist wieder das "Problem" mit Pylint. ;-) Das ist so eine Warning, die ich vermutlich irgendwann global per Konfigurationsfile ausschalten werde, genauso wie die, die allgemein übliche Variablennamen wie "i" für einen Zähler oder "ts" für einen Timestamp als "nicht ím snake_case geschrieben" anmeckert. > > Und eigentlich ist das doch auch nur ein Satz globaler Variablen auf > > Steroiden. > > Ja, das kann man so sehen. Ich finde die Extra-Klasse ganz > schön, um zusammengehörige Objekte zu gruppieren. Ich würde > das hier wahrscheinlich machen, aber man kann auch > argumentieren, dass es bei drei(?) Objekten in der Klasse > auch ok ist, Variablen auf der Modul-Ebene zu verwenden. > Letztlich ist das Geschmackssache, denke ich. Ich habe das Gefühl, dass in python ganz besonders wenig als "Geschmackssache" durchgeht und ziemlich viel "das schreibt und formatiert man so, basta" gehandhabt wird. Daran muss ich mich erstmal gewöhnen, ich komme eher aus der "there is more than one way to do it" Ecke. Aber ich versuche, ein Gefühl zu bekommen, vielleicht gefällt es mir ja. Ich habe sehr viel in Perl gemacht, weil es für alles und jedes ein Modul gibt, das ist in Python (inzwischen) auch so, und einiges in ruby, weil das wenn man im puppet-Umfeld arbeitet einfach die "natürliche" Sprache ist. > > Ich finde es eigentlich ganz gut, wenn es für Konfigurationsvariablen > > auch eine entsprechende Kommandozeilenoption gibt. Auf diese Weise kann > > man die regelmäßig verwendeten Optionen in die Konfigurationsdatei > > schreiben und wenn man es doch mal anders braucht auf der Kommandozeile > > überschreiben. > > Wenn du eine starke Überschneidung zwischen der > Konfiguration im allgemeinen und der Konfiguration von der > Kommandozeile hast Das ist bei meinen kleinen praktischen Kommandozeilentools recht häufig der Fall. Erschwerend kommt hinzu, dass ich eine schwere Abneigung gegen ini-Files habe und yaml vorziehe. > Ich finde das gut, dass du mit verschiedenen Ansätzen > experimentierst. Dann bekommst du ein noch besseres Gefühl > dafür, welche Vor- und Nachteile verschiedene Ansätze haben. Darum geht es mir ja, ich möchte ein Gefühl für die Sprache bekommen. Das Logging-Modul gefällt mir schonmal so gut, dass ich mich bei meiner nächsten größeren perl-Arbeit¹ an den python-Idiomen orientieren werde. Grüße Marc ¹ das Logging in Debians adduser (https://tracker.debian.org/pkg/adduser) ist grauslich, das gehört dringend mal gerade/orthogonal gezogen, am besten noch vor dem nächsten Freeze -- ----------------------------------------------------------------------------- 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