Klaus Alexander Seistrup skrev:
> instantierer en klasse skal man ikke normal ligge og fedte med en
> extra .init() før den kan bruges.
Den er ikke ekstra. __init__() kaldes kun hvis man laver en
instans, så den fjerne jeg i version 2 og erstatter med init()
som kaldes udefra.
> Kan man overhovedet bare kalde Utilities.init() i det andet
> eksempel, uden at have instantieret klassen først?
Ja. Det virker fint.
> (I parentes bemærket skal init() i andet tilfælde som minimum have
> et self-argument
Nej, det vil ikke virke. self er ukendt hvis det ikke kommer fra
et objekt. Men alle self'erne skal udskiftes med "Utilities".
> 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,
Jeg opretter kun ét objekt, så jeg kan ikke kalde udefra med
forskellige værdier.
> hvis der er behov for andre værdier en standardværdierne.
Samme funktion bruges til at udtrække to forskellige sæt data.
Der er to grunde til mit eksperiment. For det første forekom det
mig lidt overflødigt at skrive en klasse der kan alt det jeg har
brug for - blot for at oprette et objekt magen til der kan det
samme. For det andet er det jo rutine at man bruger en klasse
direkte hvis den kun indeholder konstanter eller variable. Nu fik
jeg blot påvist at det også kan lade sig gøre selv om den også
indeholder funktioner.
--
/Bertel