Forts Programmering Flashcards
Vad är klasser?
En klass är en datastruktur
Vad är ett objekt?
Ett objekt är en instans skapad ur en klassdefinition (mall) och har därför samma uppsättning (instans-variabler med egna värden), och samma uppsättning funktioner (metoder)
Vad måste vara med i en klass?
konstruktorn
def __init__(self):
Är objekt skapade ur samma klass beroende av varandra?
Nej, objekten som är skapade ur en klass är oberoende av varandra och har egna värden
Hur kan man komma åt variabler inuti ett objekt?
print(person1.birth)
Vad är en metod?
En funktion som tillhör klassen
Vad måste finnas med i en metod?
Parametern self måste vara med oavsett
def age (self):
Varför måste self vara med?
Self refererar till objekten själv och måste därför skickas med i processer för att klassen ska veta vilket objekt det är som ska använda sig av funktionen
Varför börjar instansvariabler med self?
För att visa att de tillhör objektet
class Person:
def __init__(self, name):
self.name = name
Vad är en konstruktor?
En konstruktur är en metod som körs automatiskt när ett objekt skapas, ex. __init__
Hur kan man utföra en metod från en klass?
person1.update_name(“Kalle”)
objekt.funktion(argument)
Vad är ett klassamband?
En sambandstyp som förbinder två eller fler klasser
Vad är information hiding?
Ett sätt att skydda/gömma variabler så att de inte är synliga utifrån.
Bra för att undvika att variabler som inte är relevanta/ ska kommas åt utifrån. Endast funktioner, hur dessa anropas och deras syfte blir synlingt
Hur gör man information hiding?
Det görs i python genom att “name-mangla” instansvariablerna, att börja namnet med två understreck.
self.__name = name
Vad är rekursion?
Rekursion handlar om att anropa sig själv
Vad är en rekursiv funktion och vad är det bra för?
Rekursiva funktioner delar upp ett problem i mindre delar och anropar sig själv för varje av de mindre delarna.
Vad är ett krav för rekursiva funktioner?
Det måste finnas ett base case/ termineringsvillkor vid vilken funktionen slutar anropa sig själv.
Vad är två exempel på när man kan använda rekursiva funktioner?
Att exempelvis räkna ut factorial, skapa träd.
Vad är träd?
Den vanligaste datastrukturen inom IT
Vad kännetecknar Träd?
- Lagrar data hierarkiskt
- Har en root node
- Alla noder har en förälder (förutom root)
- Varje nod har 0 eller fler barn
- En nod utan barn kallas för löv
Vad är ett binärt träd?
Binära träd har MAX 2 barn per nod
- Vanlig struktur för sortering och parsning