python343 Skrevet 30. november 2016 Del Skrevet 30. november 2016 fil1 ______ class Gave: def __init__(self,gaven_navn,koster): self._gave_navn = gaven_navn self._koster = koster def returner_gave_navn(self): return self._gave_navn def returner_koster(self): return self._koster def __str__(self): return self._gave_navn + "" + str(self._koster) fil2 _______ from gave import Gave class Barn: def __init__(self,navn): self._navn = navn self._gaver = [] self._total_verdi = 0 def returner_barn_navn(self): return self._navn def returner_total_verdi(self): return self._total_verdi def aapne_gave(self,gave): self._gaver.append(gave) self._total_verdi = self._total_verdi + gave.returner_koster() <-------- Lurer på dette. def skriv_barn(self): print(self._navn) for gave in self._gaver: print(gave) print("Total verdi: " + self._total_verdi) Lurer her på hva gave.returner_koster() gjør? Er det slik at den legger til verdien som kommer fra bruker inputen fra fil1 til instansvariabelen self._total_verdi i fil2? I tillegg lurer jeg på hvorfor man har "gave." før man kaller "returner_koster()" . Vet at gave er bruker inputen på funksjonen aapne_gave(self,gave) men vet ikke hvorfor man har den der og hva den gjør. Er ganske takknemlig for hjelp og takker for svar på forhånd Lenke til kommentar
Børt-Erik Skrevet 2. desember 2016 Del Skrevet 2. desember 2016 Veldig rotete innlegg. Prøv på nytt. Lenke til kommentar
Enthroner Skrevet 12. desember 2016 Del Skrevet 12. desember 2016 Dette er objektorientert programmering. Når du sender et Barn en Gave så må du, for å finne ut _total_verdi, legge til verien av gaven. For å hente ut verdien til gaven må du bruke metoden returner_koster() som igjen returnerer verdien som ellers er 'hemmelig'. Når du ser kode som ligner på enGjenstand.etMetodeKall() så er det syntaksen for å få objektet enGjenstand, som gjerne er av klassen (typen) Gjenstand om å utføre koden som er i etMetodeKall. Den viktigste filen ser ikke vi, som er filen som faktisk inneholder et program. Grunnen til at klassene er delt inn i filer her, er slik at f.eks alle som vil kunne motta eller gi Gaver kan from gave import Gave. Lenke til kommentar
Olavxxx Skrevet 16. desember 2016 Del Skrevet 16. desember 2016 Hei, klassen du har for gave kan du tenke på som en modell for gavene du skal ha. Når du da lurer på følgende:self._total_verdi = self._total_verdi + gave.returner_koster()Det man der i praksis gjør er å legge til returnert verdi fra klassen gave, for gaven du legger til i matrisen.Denne verdien er da inni klassen barn i form av den variabelen self._total_verdi , men den hentes ut fra instansen du har av klassen gave, gjennom funksjonen for å returnere verdi.Siden du der plusser på en verdi i en eksisterende verdi, kunne du også brukt += fremfor å gjenta variabelnavnet: self._total_verdi = self._total_verdi + gave.returner_koster() Er det samme som: self._total_verdi += gave.returner_koster() Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå