Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: c.buhtz@posteo.jp Newsgroups: de.comp.lang.python Subject: =?utf-8?q?=5BPython-de=5D_Re=3A_Code_Style_Review?= Date: Tue, 29 Nov 2022 14:39:03 +0000 Lines: 55 Message-ID: References: <480b80d21e58d280c437b4854bfc7cf1@posteo.de> <7255f3485a4745df69dc13cedf68e8b0@posteo.de> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Trace: news.uni-berlin.de rJpvKy7wxGyA1vXA6b1fpQd0mNkr+vONiVNl3942+ByA== Authentication-Results: mail.python.org; dkim=pass reason="2048-bit key; unprotected key" header.d=posteo.jp header.i=@posteo.jp header.b=g7bMw1Pm; dkim-adsp=pass; dkim-atps=neutral DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.jp; s=2017; t=1669732744; bh=1OO2lWV+NgTgXPSpWhXvip9Su23VSUjV3bbHc7h/DjU=; h=Date:From:To:Subject:From; b=g7bMw1PmemK9kBAwSxbglEWiT67rBaXCGQwpW+vnQi1lXiMSGb+ewx22szvMrQ4Rv wx7+XmC7ETyt8TWjjwvDrN4LjNutY21EWblHUCCvZVkZChDt34S+l8voCd0cS+DA7w Rth8ZzHSKufvfWqDEfq8Y1SBCChwx+AnhEs+Be81QZSSgtZ53RRdSqV12pIQzpoDtU 22jr5pBFQvc9ed0YEattpqarJxckDdV2hPAMQw9UwsIY1/LpuvnTDtpJq6/wBn6X2L SqBIagKx7UOilC4QoOP1gD8rJbaTpIymgwmGNh5gBRlLvTEqn2HzGVBW2mm4TekK+E IRM4lTTzhrRWg== Mail-Followup-To: python-de@python.org In-Reply-To: Message-ID-Hash: R744A5EWTYVGEXSSZMD6BECAF6CENCZS X-Message-ID-Hash: R744A5EWTYVGEXSSZMD6BECAF6CENCZS X-MailFrom: c.buhtz@posteo.jp 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:5872 Hallo Marc, Am 29.11.2022 15:22 schrieb Marc Haber: > c.buhtz@posteo.jp wrote: >> Es gibt andere L=C3=B6sungen. >=20 > Und die w=C3=A4ren? Siehe unten. > Jeder einzelnen Funktion in jedem einzelnen Aufruf das > config-Hash als Parameter mitgeben? Nein, das w=C3=BCrde ich auch nicht machen wollen. ;) >> Besser w=C3=A4re hier eine >> Art Singleton-Pattern anzuwenden. >> Sagen wir deine Konfiguration ist in der Klasse "Config". >>=20 >> class Config: >> [...] > Das sind 22 Zeilen f=C3=BCr was? Bitte Pattern nicht als fertige L=C3=B6sung betrachten, schon gar nicht im= =20 Kontext von Python. Ich verstehe die immer als L=C3=B6sungsans=C3=A4tze, di= e=20 sozusagen zum Denken anregen sollen. Sie m=C3=BCssen nicht 1 zu 1 umgesetzt= =20 werden. Es gab da ja auch den, f=C3=BCr mich auch neuen, Vorschlag zum "Borg=20 Pattern". > Und da habe ich immer noch nicht das > Problem gel=C3=B6st, dass ich das einzelne Objekt dieser Klasse immer noc= h > als globale Variable mitziehen muss Ne, eben nicht. Die Klasse kennt ihre eigene Instanz. Du musst dir keine=20 Gedanken mehr darum machen, "wo" diese Instanz herkommt. Mach einfach "Config.instance()". Eine andere Alternative w=C3=A4re ein ganzes "config" Modul anzulegen; also= =20 "config.py" die du mit "import config" bekannt machst und dann z.B.=20 "config.instance.getFoobar()" schreiben kannst. Deine globale Variable=20 kapselst du in einem Modul. > Oder stehe ich hier auf dem Schlauch? Wie gesagt, kann man Pattern (z.B. Singleton) genau dazu nutzen, um mal=20 "anders zu denken". Mir geht das bei dem "Borg" Ding so. Kannte ich=20 nicht. Finde ich auch nicht sehr geil. Aber erweitert den Horizont,=20 besonders wenn man sich die dahinterstehenden Prinzipien genau anschaut.