Een groep personen wordt gegroepeerd in een object van de klasse Bubbel
. Een beperkt aantal knuffelcontacten kunnen aan de bubbel toegevoegd worden.
Programmeer in de klasse Bubbel
:
__str__()
die de lijst van personen in de groep als resultaat teruggeeft. Hierbij wordt de lijst omgeven door vierkante haakjes, en word personen (strings) gescheiden door komma's (geen spaties!).__repr__()
methode, en zorg tevens dat de operator ==
het correcte gedrag vertoont. Hierbij zijn twee bubbels gelijk als de groep van personen identiek is (volgorde speelt geen rol). bubbel(index)
met index
en bubbel
een object van de klasse Bubbel
een geheel getal het volgende gedrag vertoont:
index
een geldig rangnummer van de groepslijst, zoals in de constructor meegegeven, voorstelt, dan is het resultaat de persoon met dit rangnummer (een string dus)'X'
bubbel.knuffel
(met bubbel
een object van de klasse Bubbel
) de lijst van knuffelcontacten als resultaat oplevert, in de volgorde waarin ze toegevoegd werden aan de groep (zie hieronder) bubbel += persoon
met bubbel
een object van de klasse Bubbel
en persoon
een string, de persoon toevoegt aan de knuffelcontacten van de groep. De opdrachte heeft GEEN effect indien 1 (of meer) van onderstaande voorwaarde vervult is (zijn):
bubbel -= persoon
(notaties zoals hierboven) resulteert in het weghalen van de persoon uit de groep van knuffelcontacten. Indien de persoon NIET tot de knuffelcontacten behoorde, heeft de opdracht geen effect.bubbel1 * bubbel2
de verzameling van personen teruggeeft die gemeenschappelijk zijn aan bubbel1
en bubbel2
, hetzij als groeplid, hetzij als knuffelcontact (zowel bubbel1
en bubbel2
zijn objecten van de klasse Bubbel
)b1 = Bubbel(['Greet', 'Mo', 'Nasser'], 3) print(b1) #[Greet,Mo,Nasser] print(eval(repr(b1)) == b1) #True print(b1(1)) #Mo print(b1(5)) #'X' for contact in ['Jan', 'Leen', 'Mo', 'Leen', 'Jan', 'Mo']: b1 += contact print(b1.knuffel) #[Jan, Leen] for contact in ['Mo', 'Jan', 'Jan', 'Jan', 'Mo', 'Greet']: b1 -= contact print(b1.knuffel) #[Leen] for contact in ['Jan', 'Cedric', 'Mo', 'Izmir', 'Izmir', 'Jan', 'Mo']: b1 += contact print(b1.knuffel) #[Leen, Jan, Cedric] b2 = Bubbel(['Greet', 'Dorine', 'Cedric', 'Mo', 'Leen'], 3) for contact in ['Leen', 'Nasser']: b2 += contact print(b1 * b2) #{'Greet', 'Mo', 'Cedric', 'Leen', 'Nasser'}