Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #5869

[Python-de] Re: Code Style Review

Path csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail
From c.buhtz@posteo.jp
Newsgroups de.comp.lang.python
Subject [Python-de] Re: Code Style Review
Date Mon, 28 Nov 2022 22:38:02 +0000
Lines 47
Message-ID <7255f3485a4745df69dc13cedf68e8b0@posteo.de> (permalink)
References <tm2jhn$1k5h8$1@news1.tnib.de> <480b80d21e58d280c437b4854bfc7cf1@posteo.de> <tm372k$1lddf$1@news1.tnib.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 gd3iofZ+I4E3YrHoVjKXTgg66VOzkRkUGjkxCZT56+mw==
Authentication-Results mail.python.org; dkim=pass reason="2048-bit key; unprotected key" header.d=posteo.jp header.i=@posteo.jp header.b=I/dewbSI; dkim-adsp=pass; dkim-atps=neutral
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.jp; s=2017; t=1669675082; bh=LiwBtAPBBQQ4gZrv3XuK5zd6nTHaLH5X3rjrgTCXV8c=; h=Date:From:To:Subject:From; b=I/dewbSI3lInHnDxixxl7VT4+u3MKwnebVDEUFgW+JShcsNg76JipiiGDQsmnSBvl 5V1PZ2jii6KayvwhWlsuesbNjXlFQe90jPYd8+GFJ5J5DWuL72ighhu+i5julQ6Juh 3WxZ8MwEVVC1JSwIoeTLkJ6sbMSYI+4Z2JlKuyRcxNAEfKmaWsN03+rIkVYz+BWqHv VBSs4AOMwTaiPgSrQgvFF6GweihII5oVwrvdFMUH1Z/DdvtU+gt9gdf5ZQ28z6HALG /pMiVxmjxEMVwP8yRDWl/8z3Vkfu145AWB9WE2WDU+Sr6MsNz8qRIn5eMsZ8pggHAi Wq6qtqJmiophw==
Mail-Followup-To python-de@python.org
In-Reply-To <tm372k$1lddf$1@news1.tnib.de>
Message-ID-Hash NPC3AW7OJ2ZJCGRCFP7QON4MQWJNUE3B
X-Message-ID-Hash NPC3AW7OJ2ZJCGRCFP7QON4MQWJNUE3B
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 <python-de.python.org>
Archived-At <https://mail.python.org/archives/list/python-de@python.org/message/NPC3AW7OJ2ZJCGRCFP7QON4MQWJNUE3B/>
List-Archive <https://mail.python.org/archives/list/python-de@python.org/>
List-Help <mailto:python-de-request@python.org?subject=help>
List-Owner <mailto:python-de-owner@python.org>
List-Post <mailto:python-de@python.org>
List-Subscribe <mailto:python-de-join@python.org>
List-Unsubscribe <mailto:python-de-leave@python.org>
Xref csiph.com de.comp.lang.python:5869

Show key headers only | View raw


Am 28.11.2022 21:52 schrieb Marc Haber:
> Das sehe ich mindestens teilweise anders. Wenn ich irgendwo explizit
> hinschreibe, dass eine Funktion eine globale Variable verwendet (wie
> z.B. das dictionary, in dem die Konfiguration drin steht) und der
> Linter das unkonditional anmeckert nur allein weil das Schlüsselwort
> benutzt wurde ergibt das für mich keinen Sinn

Auch wenn es radikal klingen mag; Es hat keinen Sinn "global" zu 
verwenden, auch wenn Python das im Sprachumfang hat. Ein "global" hat 
sehr viele Nebeneffekte und birgt potentielle Risiken, die den Gewinn 
nicht aufwiegen. Es gibt andere Lösungen.

> Gerade für die Konfiguration halte ich die globale Variable auch für
> den vernünftigen Weg, das wirklich überall bekannt zu machen.

Nein, ist es nicht. Das ist nur eine "Abkürzung". Besser wäre hier eine 
Art Singleton-Pattern anzuwenden.
Sagen wir deine Konfiguration ist in der Klasse "Config".

class Config:
     @classmethod
     def instance(cls):
         # Provide the instance if it exists
         if cls._instance:
             return cls._instance

         # But don't created implicit when needed.
         raise Exception(f'No instance of class "{cls}" exists. '
                         'Create an instance first.')

     def __init__(self):
         # Exception when an instance exists
         if __class__._instance:
             raise Exception(
                 f'Instance of class "{self.__class__.__name__}" still 
exists!'
                 f' Use "{self.__class__.__name__}.instance()" to access 
it.')

         # Remember the instance as the one and only singleton
         __class__._instance = self

Quelle: 
https://github.com/bit-team/backintime/blob/buhtz_config-singleton/common/config.py

Back to de.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Code Style Review Marc Haber <mh+usenetspam1118@zugschl.us> - 2022-11-28 16:19 +0100
  [Python-de] Re: Code Style Review c.buhtz@posteo.jp - 2022-11-28 15:37 +0000
    [Python-de] Re: Code Style Review Christopher Arndt <chris@chrisarndt.de> - 2022-11-28 16:48 +0100
      [Python-de] Re: Code Style Review c.buhtz@posteo.jp - 2022-11-28 19:53 +0000
      Re: [Python-de] Re: Code Style Review Marc Haber <mh+usenetspam1118@zugschl.us> - 2022-11-28 22:07 +0100
        [Python-de] Re: Code Style Review Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2022-11-29 18:51 +0100
          [Python-de] Re: Code Style Review Marc Haber <mh+python-de@zugschlus.de> - 2022-11-29 21:44 +0100
            [Python-de] Re: Code Style Review Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2022-11-29 23:16 +0100
    Re: [Python-de] Re: Code Style Review Marc Haber <mh+usenetspam1118@zugschl.us> - 2022-11-28 21:52 +0100
      [Python-de] Re: Code Style Review c.buhtz@posteo.jp - 2022-11-28 22:38 +0000
        Re: [Python-de] Re: Code Style Review Enrik Berkhan <Enrik.Berkhan@inka.de> - 2022-11-29 06:03 +0000
        Re: [Python-de] Re: Code Style Review Marc Haber <mh+usenetspam1118@zugschl.us> - 2022-11-29 15:22 +0100
          [Python-de] Re: Code Style Review c.buhtz@posteo.jp - 2022-11-29 14:39 +0000
      [Python-de] Re: Code Style Review Matthias Urlichs <matthias.urlichs@noris.de> - 2022-11-30 10:47 +0000
        [Python-de] Re: Code Style Review Marc Haber <mh+python-de@zugschlus.de> - 2022-12-01 21:30 +0100
          [Python-de] Re: Code Style Review Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2022-12-02 00:07 +0100
            Re: [Python-de] Re: Code Style Review "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2022-12-03 14:32 +0100
          [Python-de] Re: Code Style Review Matthias Urlichs <matthias.urlichs@noris.de> - 2022-12-02 09:29 +0000
            [Python-de] Re: Code Style Review Marc Haber <mh+python-de@zugschlus.de> - 2022-12-02 18:02 +0100
    [Python-de] Re: Code Style Review Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2022-11-29 18:33 +0100
  [Python-de] Re: Code Style Review Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2022-11-29 18:18 +0100
    [Python-de] Re: Code Style Review Hans-Peter Jansen <hpj@urpla.net> - 2022-11-30 15:52 +0100
    [Python-de] Re: Code Style Review Marc Haber <mh+python-de@zugschlus.de> - 2022-12-01 21:16 +0100
      [Python-de] Re: Code Style Review Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2022-12-01 23:58 +0100
        [Python-de] Re: Code Style Review Marc Haber <mh+python-de@zugschlus.de> - 2022-12-02 18:10 +0100
          Re: [Python-de] Re: Code Style Review "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2022-12-03 14:36 +0100

csiph-web