class Nettbank: """ Klasse som representerer en konto hos en nettbank. Hvert objekt vi lager av denne klassen vil da være en egen konto! """ def __init__(self): self._saldo = 0 def __repr__(self): """ Metode som blir bruk om vi sier print(objekt). Printer da stringen __repr__ returnerer! """ return "saldo: " + str(self._saldo) def innskudd(self, beløp): self._saldo += beløp def uttak(self, beløp): if beløp < self._saldo: self._saldo -= beløp else: print("Ugyldig beløp, du er blakk kompis.") eirik_sin_nettbank = Nettbank() eirik_sin_nettbank.innskudd(100) # Hva skjer ved de forskjellige NOTE'ene? Hva printes? # NOTE: A print(eirik_sin_nettbank) def uttak_prosedyre(konto): konto.uttak(20) uttak_prosedyre(eirik_sin_nettbank) # NOTE: B print(eirik_sin_nettbank) def uttak_funksjon(konto): konto.uttak(20) return konto eirik_sin_nettbank = uttak_funksjon(eirik_sin_nettbank) # NOTE: C print(eirik_sin_nettbank) """ Printer: 100, 80, 60 Selvom vi ikke returnerer en variabel, så er det slik at vi sender med en referanse til et objekt inn til funksjonene/prosedyrene våre. Vi får ikke et tilfelle med lokale variable her. Siden vi sender med en referanse til objektene våre inn, er det faktisk de objektene som blir manipulert av funksjonene. Hadde vi her gjort det samme med en int og ikke et objekt, hadde vi ikke endret den på uten å returnere den og så tilordne den verdien på nytt. """