ES3 test 14 errore "stesse istanze"

DRDLCN (8070 points)
3 67 104
asked Dec 11, 2018 in Es3 by DRDLCN (8,070 points)
edited Dec 12, 2018 by DRDLCN
f"I registi devono essere le stesse istanze che stanno nel catalogo_registi'")
AssertionEralse is not true : I registi tornato da Attore.registi() devono essere le stesse istanze che stanno nel catalogo_registi'

Non capisco come sia possibile questo io direttamente dalla funzione inserisco i registi in ogni attore ma comunque mi esce questo errore...questo esercizio mi sta snervando,

ho provato con metodi diversi ma sempre questo errore mi ritorna....
229 views

4 Answers

andrea.sterbini (172680 points)
511 927 1776
answered Dec 11, 2018 by andrea.sterbini (172,680 points)
Film e Attore devono tornare solo Registi che sono stati inizialmente inseriti nel catalogo_registi mentre si creavano i Film.
DRDLCN (8070 points)
3 67 104
commented Dec 11, 2018 by DRDLCN (8,070 points)
lo faccio, ma l'errore persiste forse serve qualche controllo?
alessioclemente (19640 points)
1 66 153
answered Dec 12, 2018 by alessioclemente (19,640 points)
Lo avevo anche io questo errore, anche se crei un oggetto regista con la stesso nome, quella è un'istanza diversa. Devi andare a riprendere quella che era già inserita.
DRDLCN (8070 points)
3 67 104
commented Dec 12, 2018 by DRDLCN (8,070 points)
io faccio cosi: scorro films.json e mi creo il catalogo film..mentre lo creo scorro gli attori e li inserisco nel film e viceversa

faccio lo stesso con i registi.... non capisco dove è l'errore davvero ho provato di tutto

io il catalogo registi lo creo cosi: scorro la lista directors' mi creo l'istanza regista e con un if controllo se è gia nel catalogo registi (perche potrebbero esserci piu film girati dallo stesso regista) poi aggiungo il regista al film e il film al regista

ti giuro non capisco dove sbaglio
alessioclemente (19640 points)
1 66 153
commented Dec 12, 2018 by alessioclemente (19,640 points)
Io ho risolto mettendo un controllo se il regista esiste già nel dizionario, se si aggiungo(dizionario_registi(nomeregista)) sennò aggiungo l'istanza nuova del regista
DRDLCN (8070 points)
3 67 104
commented Dec 12, 2018 by DRDLCN (8,070 points)

se si aggiungo(dizionario_registi(nomeregista))

li aggiungi agli attori? come li scorri gli attori? con film.attori() no?

alessioclemente (19640 points)
1 66 153
commented Dec 12, 2018 by alessioclemente (19,640 points)
Li scorri iterando sul dizionario con chiave film con chiave ACTORS
DRDLCN (8070 points)
3 67 104
commented Dec 12, 2018 by DRDLCN (8,070 points)
e come fai a iterare sia sui DIRECTORS che su gli ACTORS?

io li scorro in 2 for diversi...forse qui sbaglio
alessioclemente (19640 points)
1 66 153
commented Dec 12, 2018 by alessioclemente (19,640 points)
No, anche io, allo stesso modo
DRDLCN (8070 points)
3 67 104
commented Dec 12, 2018 by DRDLCN (8,070 points)

anche per aggiungere i film ai registi devo fare questo controllo?

se si aggiungo(dizionario_registi(nomeregista)) sennò aggiungo l'istanza nuova del regista

alessioclemente (19640 points)
1 66 153
commented Dec 12, 2018 by alessioclemente (19,640 points)
Io ho fatto tutto ciò nello stesso if else
a.capobianco1 (16770 points)
1 54 165
answered Dec 12, 2018 by a.capobianco1 (16,770 points)
Per essere sicuri di aver creato istanze uniche forse conviene creare e scambiarsi tutti gli oggetti direttamente nella funzione esterna e non all'interno delle classi.
DRDLCN (8070 points)
3 67 104
commented Dec 12, 2018 by DRDLCN (8,070 points)
si ho provato anche questo quando creo il catalogo registi prendo la stessa istanza e la inserisco nel set registi di attore, ma non va!!!!!!!!!! aiuto

scorrendo i registi li aggiungo al film

prima di questo pero' io aggiungo gli attori al film, quindi per aggiungere i registi agli attori passo per i film , forse qui sbaglio:

mi scorro i registi li aggiungo al catalogo  li aggiungo al film , mi trovo gli attori del film e ci aggiungo il registi
a.capobianco1 (16770 points)
1 54 165
commented Dec 12, 2018 by a.capobianco1 (16,770 points)
Occhio che più film possono avere lo stesso regista. Lo devi aggiungere solo se non è presente nel Catalogo registi altrimenti sovrascrivere istanza
Edit:anzi in tal caso devi aggiungere al film l'oggetto attore del catalogo perché già esistente
_andrea_ (45670 points)
2 39 297
answered Dec 12, 2018 by _andrea_ (45,670 points)
è NECESSARIO creare tutto nelle funzioni iniziali, non dentro le classi, perché i test si riferiscono ai dizionari creati nelle funzioni
DRDLCN (8070 points)
3 67 104
commented Dec 12, 2018 by DRDLCN (8,070 points)
lo faccio!!!!!!!!! non capisco ti giuro
S
Stefano Urani (1940 points)
0 16 34
commented Dec 12, 2018 by Stefano Urani (1,940 points)
anche io stessa cosa, assegno tutto nelle funzioni iniziali, assegno a ogni istanza di attore le istanze dei registi presi dal catalogo registi mettendoli in un insieme che ha nome diverso da quello dei metodi della classe. Eppure non funziona
_andrea_ (45670 points)
2 39 297
commented Dec 12, 2018 by _andrea_ (45,670 points)
Sicuri di non aver sovrascritto i registi quando li trovate in due film diversi? Se scorrendo i registi di un film ne trovate uno già creato dovete considerare quello, non crearne uno nuobo
DRDLCN (8070 points)
3 67 104
commented Dec 12, 2018 by DRDLCN (8,070 points)
ecco forse questo è il problema

quindi se il regista è gia nel catalogo devo prendere l'oggetto che è dentro al catalogo e aggiungerlo al film
_andrea_ (45670 points)
2 39 297
commented Dec 12, 2018 by _andrea_ (45,670 points)
Si, altrimenti per ogni regista che ha fatto più di un film, crei sempre una nuova istanza
S
Stefano Urani (1940 points)
0 16 34
commented Dec 12, 2018 by Stefano Urani (1,940 points)
prova a controllare nella classe regista se hai un attributo 'nome' e un metodo nome. Se sì cambia il nome dell'attributo!

Io così ho risolto. in effetti _andrea_ aveva ragione..

edit

anzi, forse non ho ancora risolto del tutto
andrea.sterbini (172680 points)
511 927 1776
commented Dec 12, 2018 by andrea.sterbini (172,680 points)
Esatto, se il regista già esiste devi prendere quello e NON crearne uno nuovo.

(ovvero devi crearne una istanza unica per ciascun nome)