Errore es3 aggiungi attore

DRDLCN (8070 points)
2 67 104
asked Dec 11, 2018 in Es3 by DRDLCN (8,070 points)

self.assertEqual(attore.films(),    set(),
>                        f"I film dell'attore all'inizio devono essere un insieme vuoto")
E       AssertionError: Items in the first set but not the second:
E       'The Misfits'
E       'All About Eve'
E       'The Seven Year Itch'
E       'Niagara'
E       'The Asphalt Jungle'
E       'Some Like It Hot'
E       'Monkey Business'
E       'Gentlemen Prefer Blondes' : I film dell'attore all'inizio devono essere un insieme vuoto

il test mi ritorna questo errore, perchè dice che quando chiama attore.films() il set non è vuoto all'inizio...

prima cosa io costruisco un set vuoto prima di tutto nel metodo films()

e poi ritorno l'insieme riempito...cosa sbaglio?

117 views

2 Answers

Best answer
_andrea_ (45670 points)
2 38 297
answered Dec 11, 2018 by _andrea_ (45,670 points)
selected Dec 11, 2018 by DRDLCN
Penso che il test richiami il metodo films su un attore appena creato, e quando è appena creato deve ritornare un insieme vuoto, a cui poi verranno aggiunti i film. Come aggiungi tu i film e quando?
_andrea_ (45670 points)
2 38 297
commented Dec 11, 2018 by _andrea_ (45,670 points)
Dentro ogni attore crei un set inizialmente vuoto che diventerà proprio quel set in cui metti i film. Nel metodo films ritorni quel set. Man mano che scorri i film aggiungi il film a ogni attore che ci ha lavoraroz così quando ti chiede attore.films() il metodo ritorna proprio quel set, che all'inizio era vuoto, ma dopo cu aggiungi i film. Lo stesso lo fai con i film e i registi, ci metti i set che ti servono
DRDLCN (8070 points)
2 67 104
commented Dec 11, 2018 by DRDLCN (8,070 points)
okay ho ricominciato, quando dici man mano che scorri i film intendi dentro la funzione leggi archivio film?
_andrea_ (45670 points)
2 38 297
commented Dec 11, 2018 by _andrea_ (45,670 points)
Si. Le due funzioni sono le uniche cose che scegli tu, e vengono eseguite. Dentro quelle devi aver fornito a ogni oggetto tutto quelll che gli serve per ottenere i risultati giusti ai test successivi
DRDLCN (8070 points)
2 67 104
commented Dec 11, 2018 by DRDLCN (8,070 points)
edited Dec 11, 2018 by DRDLCN

sei stato di grande aiuto! 

EDIT:

def attori(self):
        '''torna l'insieme di istanze di tipo Attore che hanno lavorato al film'''
       

anche qui dentro ogni film inizialmente devo creare un set vuoto attori?

_andrea_ (45670 points)
2 38 297
commented Dec 11, 2018 by _andrea_ (45,670 points)
Si anche lì e in quello dei registi
andrea.sterbini (167420 points)
487 897 1726
answered Dec 11, 2018 by andrea.sterbini (167,420 points)
Visto che l'archivio degli attori/film potrebbe essere diverso, un nuovo Attore appena istanziato non può sapere in quali film ha lavorato, e quindi Attore.films() deve tornare un insieme vuoto.

Solo dopo aver creato gli attori del catalogo_attori, quando creo i film (dal file che voglio io), allora puoi aggiungere gli attori ai loro film ed i film ai loro attori.