Een architect moet verschillende verwarmingstoestellen plaatsen in een groot gebouw. Om een computersimulatie te kunnen maken van de warmteregeling van het gebouw, moet hij een reeks verwarmingstoestellen kunnen voorstellen. Hierbij wordt elk individueel verwarmingstoestel beschreven aan de hand van volgende informatievelden: de naam van het toestel, de huidige instelling van de temperatuur, de minimum toegelaten temperatuur en de maximum toegelaten temperatuur. Binnen de simulatie moet de temperatuur van een bepaald toestel verhoogd of verlaagd kunnen worden, en moet de huidige temperatuur van elke toestel te allen tijden kunnen opgevraagd worden.
Definieer een klasse Verwarming die minstens de volgende methoden ondersteunt:
Een initialisatiemethode __init__ waaraan de naam van het toestel (str) moet doorgegeven worden. Daarnaast zijn er nog drie optionele parameters waaraan de volgende informatie kan doorgegeven worden: i) de huidige instelling van de temperatuur (int of float; standaardwaarde: 10.0), ii) de minimum toegelaten temperatuur (int of float; standaardwaarde: 0.0) en iii) de maximum toegelaten temperatuur (int of float; standaardwaarde: 100.0).
Een methode __str__ die een stringvoorstelling van het verwarmingstoestel (str) teruggeeft. Bekijk onderstaand voorbeeld om te bepalen hoe deze stringvoorstelling er moet uitzien. Alle getallen moeten weergegeven worden met één decimaal cijfer (gebruik afronding).
Een methode __repr__ die een stringvoorstelling van een verwarmingstoestel (str) teruggeeft. Waar de methode __str__ wordt gebruikt om een voorstelling van een object te bekomen die makkelijk leesbaar is voor een menselijke gebruiker, geeft __repr__ een voorstelling terug zoals die kan gelezen worden door de Python interpreter. De methode __repr__ geeft een syntactisch correcte Python expressie, die — wanneer ze geëavalueerd zou worden — een object aanmaakt dat gelijk is aan het object dat origineel werd doorgegeven aan __repr__. Alle getallen moeten weergegeven worden met één decimaal cijfer (gebruik afronding).
Een methode wijzig_temperatuur waarmee de huidige instelling van de temperatuur kan gewijzigd worden. Aan deze methode moet de temperatuursverhoging (int or float; of temperatuursverlaging indien dit een negatief getal is) doorgegeven worden. De methode moet er wel voor zorgen dat de temperatuur binnen het toegelaten interval blijft. Als de nieuwe temperatuur bijvoorbeeld lager zou zijn dan de minimale temperatuur, dan wordt de nieuwe temperatuur de minimale temperatuur. Analoog voor het overschrijden van de maximale temperatuur.
Een methode temperatuur waaraan geen argumenten moeten doorgegeven worden. De methode moet de huidige instelling van de temperatuur teruggeven (float).
>>> toestel1 = Verwarming('radiator keuken', temperatuur=20)
>>> toestel2 = Verwarming('radiator living', minimum=15, temperatuur=18)
>>> toestel3 = Verwarming('radiator badkamer', temperatuur=22, minimum=18, maximum=28)
>>> print(toestel1)
radiator keuken: huidige temperatuur: 20.0; toegelaten min: 0.0; toegelaten max: 100.0
>>> toestel2
Verwarming('radiator living', 18.0, 15.0, 100.0)
>>> toestel2.wijzig_temperatuur(8)
>>> toestel2.temperatuur()
26.0
>>> toestel3.wijzig_temperatuur(-5)
>>> toestel3
Verwarming('radiator badkamer', 18.0, 18.0, 28.0)