Groups | Search | Server Info | Login | Register


Groups > dk.edb.programmering > #100

Re: Principielt spørgsmål

From Klaus Alexander Seistrup <klaus@seistrup.dk>
Newsgroups dk.edb.programmering
Subject Re: Principielt spørgsmål
Date 2020-11-05 13:05 +0000
Organization BornMesh, Bornholm, Denmark
Message-ID <vinji-5fa3f5d0-b3665218@klaus.seistrup.dk> (permalink)
References <q96ozxpc4m3h.dlg@lundhansen.dk>

Show all headers | View raw


Bertel Lund Hansen skrev:

> Jeg kan bruge den på to måder, og spørgsmålet er hvilken
> der er mest logisk.

Det mest pytoniske vil være at benytte __init__-metoden. Når man 
instantierer en klasse skal man ikke normal ligge og fedte med en 
extra .init() før den kan bruges.

Kan man overhovedet bare kalde Utilities.init() i det andet 
eksempel, uden at have instantieret klassen først?

(I parentes bemærket skal init() i andet tilfælde som minimum have 
et self-argument — ellers får man en fejl når man kalder klassen, 
fordi fortolkeren mener at antallet af givne argumenter ikke svarer 
overens med det forventede.)

> Hvad mener I?

Jeg vil uden at blinke vælge den første løsning. Afhængigt af de 
konkrete omstændigheder, ville jeg dog måske lade __init__() tage 
et eller flere argumenter, fx

    class Utilities(object):
        def __init__(self, kept=1, wanted=0):
	    ⋮

— eller hvad der nu er brug for — som så kan instantiere med fx

    utilities = Utilities(kept=2)

hvis der er behov for andre værdier en standardværdierne.

-- 
Klaus Alexander Seistrup
🚀 gemini://port1965.eu/

Back to dk.edb.programmering | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Principielt spørgsmål Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-11-05 09:34 +0100
  Re: Principielt spørgsmål Klaus Alexander Seistrup <klaus@seistrup.dk> - 2020-11-05 13:05 +0000
    Re: Principielt spørgsmål Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-11-05 15:24 +0100
      Re: Principielt spørgsmål Klaus Alexander Seistrup <klaus@seistrup.dk> - 2020-11-07 07:50 +0000

csiph-web