Föreläsning 4 Python: mera om funktioner och parametrar 2017-04-06 Föreläsning 4 Python: mera om funktioner och parametrar Klass och instans Vahid Mosavat, Nada, KTH
Funktioner Man definierar funktioner för att dela upp programmet för syftet att: Återanvända kod Få en bättre överblick över programmets olika delar Det är viktig att skriva funktioner så generellt som möjligt
Variabler En variabel kan vara någon av följande: Globala variabler Globala variabler ska definieras med nyckelordet global Lokalvariabel Formella parametrar Lokala variabler deklareras i funktioner Lokala variabler är känd endast i funktionen och har kortare livslängd än globala variabler
Exempel def div(): #variabeln x är global här print x/2 x=10 div() Skriver ut 5
Exempel Följande kod är rätt def change(): global x x=x/2 x=10 print x Följande kod ger fel def change(): x = x/2 x=10 change()
Exempel Följande kod ger fel def change(x): global x x = x/2 x=10 print x change(x) Följande kod är rätt def change(x): x = x/2 x=10 print x change(x)
Föreläsning 6 2017-04-06 Referenser Alla variabler som används för att komma åt ett objekt är referenser. En referensvariabel innehåller inga värde däremot adressen till något minnesutrymme där instansen befinner sig. t.ex: str=”hej” #str är en referensvariabel som referera på en instans av string. En referensvariabel kan endast referera till en instans i taget alltså inte fler än en instans samtidigt. Däremot en instans kan refereras av många olika referensvariabler. Vahid Mosavat, Nada, KTH
kod Minne str1=None str1 str1 = ”Elektro” ”Elektro” Instans av String Föreläsning 6 2017-04-06 kod Minne str1=None str1 None str1 = ”Elektro” Instans av String ”Elektro” Vahid Mosavat, Nada, KTH
kod Minne Str1=None str1 str1 = ”Elektro” Str2 = None str2 ”Elektro” Föreläsning 6 2017-04-06 kod Minne Str1=None str1 str1 = ”Elektro” Instans av String Str2 = None str2 None ”Elektro” Str2 = str1 Vahid Mosavat, Nada, KTH
kod Minne Str1=None str1 str1 = ”Elektro” str2 str2 ”Elektro” Föreläsning 6 2017-04-06 kod Minne Str1=None str1 str1 = ”Elektro” Instans av String str2 str2 ”Elektro” str2=str1 Vahid Mosavat, Nada, KTH
Följande kan alltså aldrig hända Föreläsning 6 2017-04-06 Följande kan alltså aldrig hända Ett objekt refVar Ett annat objekt Vahid Mosavat, Nada, KTH
Klass och instans (objekt) En klass är en mall för ett objekt, exempel på klass: Bil konto Ett objekt är en instans av en klass, exempel på objekt: den röda bilen mitt lönekonto Man kan definiera egna klasser som sedan kan instanser skapas från dem.
Programkodens uppbyggnad Deklaration av klass : Globala variabler inom klassen initieras här … flera variabler kan initieras här … Deklaration av funktion (formella parametrar): Variabler som deklareras här är lokala variabler Flera funktioner och konstruktorer kan deklareras här …
Exempel class person: name=”” age=0 def __init__(self,n,a): self.name=n self.age=a def growOld(self): self.age+=1
self Self är en default variabel som refererar till själva objektet.
Kompis programmet version1 Skriv ett program som skapar ett objekt av klassen kompis och sedan skriver ut kompisens namn och skonummer på skärmen.
Kompis programmet version3 Skriv ett program som skapar 7 olika objekt av klassen kompis och sedan skriver ut namn och skonummer av de kompisar som har fötter större än 43.
Urklassen Version1 Skriv en klass som representerar en Ur. En metod för att starta klockan. En metod för att stoppa klockan. En metod för att visa hur mycket tid det tog från då vi startade klockan tills vi stoppade klockan.
Använd Urklassen Skriv ett program som använder klassen ur som vi konstruerade i förra exemplet på detta sätt att användaren kan starta stoppa klockan. När klockan är stoppat så ska programmet visa hur mycket tid har gått från start till slut.