La classe FeinaDMA (3 punts)¶
Volem que, opcionalment, les feines disposin d’una data límit de realització. A tal fi, es demana que utilitzeu l’herència per a implementar la classe FeinaDMA, derivant-la de la classe Feina. Dissenyeu aquesta nova classe i deseu-la al mòdul feinesDMA (fitxer feinesDMA.py).
Aquesta classe caldrà que tingui un atribut addicional de tipus datetime.date, amb un valor per defecte, que hem escollit que sigui datetime.date.max (la data més gran representable, 31/12/9999). A més a més, també haurà de redifinir el mètode criteris i l’operaciò de conversió a string, tal com s’especifica tot seguit:
- class feinesDMA.FeinaDMA(descripcio, prioritat, data_limit=datetime.date.max)¶
Crea una instància de la classe que representa una feina pendent amb la descripció, prioritat i data límit indicades. Per defecte la data límit indicada serà la data més gran representable.
Atributs addicionals:
- data_limit¶
Data límit de realització de la tasca (instància de la classe
datetime.date).
Mètodes:
- criteris()¶
Retorna una tupla amb dues components:
La prioritat de la feina si està pendent, 10 en cas contrari (igual que en la classe
Feina)La data límit
Operacions:
La classe ha de suportar la conversió a
string, de manera que s’escrigui amb el format «c - n - descr - DD/MM/AAAA», essentc el caràcter “P” si la feina està pendent, “R” si ja s’ha realitzat.
n la prioritat
descr la descripció de la feina
DD/MM/AAAA el dia, mes i any de la data límit, separats per una barra.
Exemples d’ús:
>>> f1 = FeinaDMA("Comprar entrades teatre", 4, date(2024, 5, 16))
>>> f1.descripcio, f1.prioritat, f1.pendent, f1.data_limit
('Comprar entrades teatre', 4, True, datetime.date(2024, 5, 16))
>>> f1.criteris()
(4, datetime.date(2024, 5, 16))
>>> print(f1)
P - 4 - Comprar entrades teatre - 16/05/2024
>>> f1.rebaixa()
>>> print(f1)
R - 4 - Comprar entrades teatre - 16/05/2024
Disposeu de jocs de proves al fitxer tests-feinaDMA.txt, que podeu examinar per a acabar d’entendre com ha de respondre aquesta classe.