OOP Flashcards
Is Python een object georiënteerde programmeertaal?
Ja
Benoem 2 standaard klassen uit Python.
- DateTime Object
- File Object
Wat is verplicht bij de initialisatie method __init__(…) bij het creëren van een klasse?
de parameter self
Wat is verplicht bij de method __str__(…) die nuttige info over de klasse teruggeeft?
De parameter self
Aan een klasse kan je eigen methodes toevoegen, wat is opmerkelijk aan die methodes?
Ze moeten altijd de parameter self hebben!
Hoe maak je een property van een klasse private?
Door ze te starten met twee underscores.
class Persoon:
def __init__(self, par_naam, par_voornaam):
self. __naam = par_naam
self. _voornaam = par_voornaam
Welke attributen gebruiken we voor het maken van properties?
- @property voor de getter
- @naam.setter voor de setter
Geef 2 synoniemen voor een klasse-attribuut.
- klasse-variabele
- static-attribuut
In welk opzicht verschillen klasse-attributen van instantie-attributen?
Ze staan buiten de methodes van de klasse!
Op welke 2 manieren kan je een klasse-attrbuut opvragen?
- KlasseNaam.KlasseAttribuut
- Auto.AantalWielen
- Objectnaam.KlasseAttribuut
- auto22.AantalWielen
Op hoeveel manieren kan je een klasse-attribuut wijzigen en hoe werkt die manier?
- Op 1 manier
- via Klassenaam.KlasseAttribuut
- Auto.Kleur = “rood”
Welke methode wordt uitgevoerd wanneer een object wordt vernietigd?
def __del__(self):
Hoe controleer je in de setter van een property of de value die wordt doorgegeven een instantie is van een bepaalde klasse?
@eigenaar.setter
def eigenaar(self, value)
if(isinstance(value, Persoon):
…
Hoe controleer je of een object een bepaald attribuut heeft?
- hasattr(object, attributename)
Hoe duid je aan dat een methode van een klasse statisch is?
@staticmethod