Definieer een class met de naam “Student”. Deze class heeft 3 attributen, nl. achternaam, voornaam en student_id. Gebruik de repr methode om een object van de class Student af te drukken in het formaat “<achternaam> <voornaam> - ID: <student_id>”. Definieer de methode eq (operator overloading) om te controleren of 2 objecten van de class Student gelijk zijn. Dit gebeurt enkel op basis van de student_id.
Definieer een subclass “Inschrijving” van de superclass Student. Naast de 3 attributen die het erft van de superclass Student, heeft deze class 2 extra attributen, nl. schooljaar (datatype = string, vb “2022-2023”) en cursussen (datatype = list, vb [‘Python’]). Gebruik de super() methode om de attributen van de class Student over te nemen in deze class. De erfde methodes __repr__ en __eq__ worden overschreven met nieuwe code. De __repr__ methode print een object van Inschrijving af in het formaat “<student_id> - <schooljaar> - <cursussen>”. __eq__ vergelijkt 2 inschrijvingen op basis van de attributen student_id en schooljaar.
Definieer voor de subclass “Inschrijving” een methode cursus_toevoegen die een extra cursus toevoegd aan de lijst cursussen.
Test de 2 classes zoals in onderstaand voorbeeld. Deze test-code moet je niet indienen in Dodona.
Voorbeeld
>>> student1 = Student("Peeters", "Dirk", "S12321")
>>> student2 = Student("Kuypers", "Piet", "S43233")
>>> student3 = Student("Kuypers", "P.", "S43233" )
>>> print(student1)
Peeters Dirk - ID: S12321
>>> print(student2)
Kuypers Piet - ID: S43233
>>> print(student1 == student2)
False
>>> print(student2 == student3)
True
>>> inschrijving1 = Inschrijving("Peeters", "Dirk", "S12321", "2021-2022", ["Netwerken", "IoT"])
>>> print(inschrijving1)
S12321 - 2021-2022 - ['Netwerken', 'IoT']
>>> inschrijving2 = Inschrijving("Kuypers", "Piet", "S43233", "2022-2023", ["Python"])
>>> print(inschrijving2)
S43233 - 2022-2023 - ['Python']
>>> inschrijving3 = Inschrijving("Peeters", "Dirk", "S12321", "2022-2023", ["Linux"])
>>> print(inschrijving3)
S12321 - 2022-2023 - ['Linux']
>>> inschrijving4 = Inschrijving("Thijs", "Jos", "S23921", "2022-2023", [])
>>> print(inschrijving4)
S23921 - 2022-2023 - []
>>> inschrijving2.cursus_toevoegen("Linux")
>>> print(inschrijving2)
S43233 - 2022-2023 - ['Python', 'Linux']
>>> inschrijving3.cursus_toevoegen("Python")
>>> print(inschrijving3)
S12321 - 2022-2023 - ['Linux', 'Python']
>>> inschrijving4.cursus_toevoegen("Python")
>>> print(inschrijving4)
S23921 - 2022-2023 - ['Python']
>>> print(inschrijving1 == inschrijving2)
False
>>> print(inschrijving1 == inschrijving3)
False