Ús de la classe Vago¶
Al fitxer vagons.py hi disposeu de
la classe Vago, que permet de
representar vagons de trens. La seva especificació és la següent:
- class vagons.Vago(idt, nseu, npeu)¶
Atributs:
Mètodes:
- capacitat()¶
Retorna la capacitat total del vagó, comptant el màxim de persones dretes i assegudes
La classe suporta a més la funció
strque retorna l’expressió “Vago id” on id és l’identificació del vagó.
Els paràmetres de la instanciació són l’identificador, el nombre de seients i de persones dretes que hi caben. Els atributs corresponents s’inicialitzen a partir d’aquests paràmetres.
En un shell de python, creeu una instància de la classe
Vago. Consulteu i modifiqueu els seus atributs. Invoqueu el mètodecapacitat()i comproveu que funcioni. Utilitzeu la funcióstr().Al fitxer
tests-vagons.txttrobareu uns tests d’aquesta classe. Passeu-lo per assegurar-vos de que no conté errors … i de pas refrescar com es fa.Al mòdul
crear_vagons.pyimplementeu la funció especificada a continuació:- crear_vagons.crear_vagons(nvag, nseu, npeu)¶
- Paràmetres:
nvag – un enter entre 0 i 99 que representa el nombre de vagons a crear
nseu – un enter que representa el nombre de seients de cadascun dels vagons a crear
npeu – un enter que representa el nombre de persones que caben d’empeu en cadascun dels vagons a crear
- Retorna:
un iterador d’instàncies de la classe
Vago, totes amb el mateix nombre de persones d’empeu i assegudes i amb identificadors de format “VAG-XX” on “XX” és el número del vagó començant per “00”, “01” i així successsivament.
Vegeu per exemple:
>>> it = crear_vagons(3, 20, 40) >>> for v in it: ... print(v, '---', v.nseients, v.npeu) Vagó VAG00 --- 20 40 Vagó VAG01 --- 20 40 Vagó VAG02 --- 20 40 >>> next(it, 'final') 'final'
Avís
Per a resoldre aquest exercici no es poden fer servir llistes, tuples, diccionaris ni cap altra estructura de dades per a desar els elements d’un iterador.
Disposeu de més tests al fitxer tests-crear_vagons.txt i d’una solució crear_vagons.py