OOP Flashcards

1
Q

Is Python een object georiënteerde programmeertaal?

A

Ja

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Benoem 2 standaard klassen uit Python.

A
  • DateTime Object
  • File Object
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wat is verplicht bij de initialisatie method __init__(…) bij het creëren van een klasse?

A

de parameter self

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wat is verplicht bij de method __str__(…) die nuttige info over de klasse teruggeeft?

A

De parameter self

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Aan een klasse kan je eigen methodes toevoegen, wat is opmerkelijk aan die methodes?

A

Ze moeten altijd de parameter self hebben!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hoe maak je een property van een klasse private?

A

Door ze te starten met twee underscores.

class Persoon:

def __init__(self, par_naam, par_voornaam):

self. __naam = par_naam
self. _voornaam = par_voornaam

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Welke attributen gebruiken we voor het maken van properties?

A
  • @property voor de getter
  • @naam.setter voor de setter
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Geef 2 synoniemen voor een klasse-attribuut.

A
  • klasse-variabele
  • static-attribuut
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

In welk opzicht verschillen klasse-attributen van instantie-attributen?

A

Ze staan buiten de methodes van de klasse!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Op welke 2 manieren kan je een klasse-attrbuut opvragen?

A
  • KlasseNaam.KlasseAttribuut
    • Auto.AantalWielen
  • Objectnaam.KlasseAttribuut
    • auto22.AantalWielen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Op hoeveel manieren kan je een klasse-attribuut wijzigen en hoe werkt die manier?

A
  • Op 1 manier
  • via Klassenaam.KlasseAttribuut
    • Auto.Kleur = “rood”
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Welke methode wordt uitgevoerd wanneer een object wordt vernietigd?

A

def __del__(self):

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Hoe controleer je in de setter van een property of de value die wordt doorgegeven een instantie is van een bepaalde klasse?

A

@eigenaar.setter
def eigenaar(self, value)
if(isinstance(value, Persoon):

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Hoe controleer je of een object een bepaald attribuut heeft?

A
  • hasattr(object, attributename)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hoe duid je aan dat een methode van een klasse statisch is?

A

@staticmethod

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Hoe ziet de syntax eruit voor overerving?

A

class Auto(Voertuig)

  • Auto = sub class
  • Voertuig = parent class/ base class / super class
17
Q

Hoe roep je de __init__() methode van de parent op vanuit een sub class?

A
  • super.__init__()
  • Auto.__init__(self,…)
18
Q

Door een base class abstract te maken kan je verhinderen dat er van die base class instanties kunnen worden gemaakt, hoe maak je ze abstract?

A
  • from abc import ABC, abstractmethod
  • laat de base class erven van ABC
    • class Persoon(ABC):
  • definieer minstens 1 abstracte methode
    • @abstractmethod
  • *def** een_abstracte_methode(self):
  • *pass**
19
Q

Kan een klasse in Python overerven van meerdere klassen?

A

Ja

20
Q

Welke speciale methode kan je in een klasse gebruiken om te controleren op gelijkheid van 2 objecten?

A

def __eq__(self, other):
if self.param == other.param:
return True
else:
return False