Een doos draagt een etiket (om ze te identificeren) en wordt verder gekarakteriseerd door een capaciteit (voorgesteld door een geheel getal). Deze capaciteit stelt de maximale massa voor die de doos kan bevatten. Programmeer volgende methoden (je mag natuurlijk bijkomende methoden in de klasse voorzien om dit alles mogelijk te maken):
Doos
aan te maken. De constructor heeft als argumenten het etiket van de Doos
(string),
en de capaciteit van de Doos
(int). Je mag veronderstellen dat de argumenten correct geïnitialiseerd
werden en dat de capaciteit strikt groter is dan 0.
+=
, met als rechteroperand een geheel getal m
. Deze operatie voegt de massa m
toe aan de Doos
,
indien dit mogelijk is (dit lukt enkel indien door het toevoegen de maximumcapaciteit van de Doos
niet overschreden wordt). Je mag veronderstellen dat $$m \ge 0$$.
__str__()
: deze methode levert een volgende gedaante op: [etiket:[massa1,spatie massa2,spatie massa3]:C=capaciteit:I=massa_in_de_doos]
.
De volgorde van de massa's is de volgorde waarin ze aan de doos toegevoegd werden.
Voor een Doos
met etiket "AAA"
, die een capaciteit van 20 heeft, en waaraan de massa's 5 en 10 toegevoegd worden wordt dit dus: [AAA:[5, 10]:C=20:I=15]
Je kan hiervoor gebruik maken van de ingebouwde omzetting naar string van de klasse list
.
get_aantal_volle_dozen()
(zonder argumenten). Deze methode geeft het aantal objecten van de klasse Doos
dat precies gevuld is
(m.a.w. het aantal dozen waarvan de inhoud precies gelijk is aan de maximumcapaciteit van de Doos
. Programmeer deze methode als een statische methode.
reset_aantal_volle_dozen()
(zonder argumenten). De methode zorgt ervoor dat het tellen van het aantal volle dozen geen rekening houdt met het aantal volle dozen dat tot dusver gerealiseerd werd (m.a.w. het tellen van het aantal volle dozen start terug bij 0.). Programmeer ook deze methode als een statische methode.}
Doos.reset_aantal_volle_dozen() a = Doos('Doos a', 20) a += 5 a += 10 print(a) -> [Doos a:[5, 10]:C=20:I=15] a += 5 b = Doos('Doos b', 10) b += 7 b += 3 b += 5 print(b) -> [Doos b:[7, 3]:C=10:I=10] print(Doos.get_aantal_volle_dozen()) -> 2