Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

ES3 test 14 errore "stesse istanze"

DRDLCN (8070 points)
27 68 104
in Es3 by (8.1k points)
edited by
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....
876 views

4 Answers

andrea.sterbini (207920 points)
749 1267 2373
by (208k points)
Film e Attore devono tornare solo Registi che sono stati inizialmente inseriti nel catalogo_registi mentre si creavano i Film.
DRDLCN (8070 points)
27 68 104
by (8.1k points)
lo faccio, ma l'errore persiste forse serve qualche controllo?
alessioclemente (19640 points)
16 67 153
by (19.6k 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)
27 68 104
by (8.1k 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)
16 67 153
by (19.6k 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)
27 68 104
by (8.1k points)

se si aggiungo(dizionario_registi(nomeregista))

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

alessioclemente (19640 points)
16 67 153
by (19.6k points)
Li scorri iterando sul dizionario con chiave film con chiave ACTORS
DRDLCN (8070 points)
27 68 104
by (8.1k 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)
16 67 153
by (19.6k points)
No, anche io, allo stesso modo
DRDLCN (8070 points)
27 68 104
by (8.1k 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)
16 67 153
by (19.6k points)
Io ho fatto tutto ciò nello stesso if else
a.capobianco1 (16770 points)
11 54 165
by (16.8k 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)
27 68 104
by (8.1k 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)
11 54 165
by (16.8k 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)
11 42 297
by (45.7k points)
è NECESSARIO creare tutto nelle funzioni iniziali, non dentro le classi, perché i test si riferiscono ai dizionari creati nelle funzioni
DRDLCN (8070 points)
27 68 104
by (8.1k points)
lo faccio!!!!!!!!! non capisco ti giuro
S
Stefano Urani (1940 points)
2 19 34
by (1.9k 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)
11 42 297
by (45.7k 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)
27 68 104
by (8.1k 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)
11 42 297
by (45.7k points)
Si, altrimenti per ogni regista che ha fatto più di un film, crei sempre una nuova istanza
S
Stefano Urani (1940 points)
2 19 34
by (1.9k 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 (207920 points)
749 1267 2373
by (208k points)
Esatto, se il regista già esiste devi prendere quello e NON crearne uno nuovo.

(ovvero devi crearne una istanza unica per ciascun nome)