Ú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:

id

Identificador del vagó (str)

nseients

Nombre de seients del vagó (int)

npeu

Nombre màxim de persones que poden estar a peu dret al vagó (int)

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ó str que 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.

  1. En un shell de python, creeu una instància de la classe Vago. Consulteu i modifiqueu els seus atributs. Invoqueu el mètode capacitat() i comproveu que funcioni. Utilitzeu la funció str().

  2. Al fitxer tests-vagons.txt trobareu uns tests d’aquesta classe. Passeu-lo per assegurar-vos de que no conté errors … i de pas refrescar com es fa.

  3. Al mòdul crear_vagons.py implementeu 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