2. Aconseguir una classe iterable (1 punt)¶
En resoldre el primer exercici, la classe Parking no queda iterable, perquè el mecanisme que Python fa servir per defecte a partir de l’accés per índex suposa que els índexs són enters, i en aquest cas són matrícules.
Es demana que afegiu el mètode __iter__() a la classe Parking, de manera que la classe sigui iterable sobre la seqüència de les matrícules dels cotxes que hi ha aparcats a les places. L’iterador ha de recórrer les places en ordre ascendent i només proporcionar les matrícules de les places ocupades, les lliures no.
Per exemple,
>>> from parkings import Parking
>>> from datetime import datetime
>>> p = Parking(10)
>>> p.aparca(0, '1234-ABC', datetime(2025, 5, 11, hour=10, minute=0))
>>> p.aparca(4, '2126-RRR', datetime(2025, 5, 11, hour=12, minute=0))
>>> p.aparca(3, '8364-VTL', datetime(2025, 5, 11, hour=13, minute=0))
>>> p.aparca(9, '2222-MKF', datetime(2025, 5, 13, hour=12, minute=0))
>>> p.aparca(8, 'B-5632-NB', datetime(2025, 5, 17, hour=13, minute=0))
>>> for matricula in p:
... print(matricula)
1234-ABC
8364-VTL
2126-RRR
B-5632-NB
2222-MKF
Disposeu de jocs de prova al fitxer tests-iterp.txt