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

Do you need help?

Film corretto ma istanza sbagliata Es3 Hw 3

StefanoPetrilli (1280 points)
1 2 5
in Es3 by (1.3k points)
reshown by

Salve,

Sto creando la funzione film_durata e mi trovo difronte ad un errore: pur passando il film corretto le istanze dell'oggetto non combaciano con l'istanza in catalogo_film, come si può vedere nello screenshot che allego.

Per recuperare i film io creo una variabile di appoggio all'interno di ogni istanza di attore, con il codice:
catalogo_attori[attore].lista_film = catalogo_film

E poi la richiamo all'interno dell'attore cosi: self.lista_film[f]

Temo che l'origine dell'errore si trovi proprio qui ma allo stesso tempo non riesco a capire come risolvere.

1.1k views

2 Answers

_andrea_ (45670 points)
13 42 297
by (45.7k points)
Ma quindi tu salvi, in ogni attore, l'intero dizionario di film? E poi come fai a sapere che quell'istanza lì sia effettivamente il film che deve ritornare? Hai provato a leggerne il nome?
StefanoPetrilli (1280 points)
1 2 5
by (1.3k points)
Up! Up! Up! Up!
Xriuk (13590 points)
8 24 116
by (13.6k points)
@_andrea_ Non può essere che solo alcune volte sovrascriva i film, l'ordine nel file non cambia, il codice non cambia, non mi spiego come mai a volte passi a volte no.
_andrea_ (45670 points)
13 42 297
by (45.7k points)
L'ordine nel file non cambia ma l'ordine di lettura del dizionario si perché non è ordinato. Comunque nemmeno io so spiegarmelo
StefanoPetrilli (1280 points)
1 2 5
by (1.3k points)
Nella mia ignoranza mi viene in mente che potrebbe in qualche modo intervenire il garbage collector??
Credo a questo punto che l unica soluzione sia che uno dei prof visioni il mio codice...
Xriuk (13590 points)
8 24 116
by (13.6k points)
@_andrea_ Ok, ma usando le stesse chiavi nello stesso ordine (così come fa l'algoritmo per inserirle) non si ottengono risultati uguali in tutte le sessioni? Anche se l'ordine è diverso da quello di inserimento, rimane comunque costante, no? Non me lo spiego
andrea.sterbini (208020 points)
756 1270 2377
by (208k points)
NON DOVETE POSTARE CODICE!

Hai controllato se l'ordine dei film nella lista è quello giusto?
a.capobianco1 (16770 points)
14 54 165
by (16.8k points)
Prof avevo anche io problemi di istanza film.. Non è che c'entra il problema esposto di seguito?
https://q2a.di.uniroma1.it/10013/es-3-hw3-film-con-edizioni-multiple?course=es3%2Fhomework-3%2Fhomework%2Ffondamenti-di-programmazione-18-19
StefanoPetrilli (1280 points)
1 2 5
by (1.3k points)
Certo. È tutto giusto a tal punto che, come scritto sopra, se mando in esecuzione il pytest molte volte alcune volte il test passa mentre altre volte no. Lo so che è assurdo ma è cosi.

Edit. Ho anche gestito il fatto che alcuni film si ripetono.
a.capobianco1 (16770 points)
14 54 165
by (16.8k points)
Quindi hai scandito il catalogo film al contrario e hai mantenuto solo la prima occorrenza?
StefanoPetrilli (1280 points)
1 2 5
by (1.3k points)
No, quando trovo un film che gia ho inserito nel catalogo film elimino quello che avevo memorizzato prima ma sembrava funzionare anche semplicemente sovrascrivendo i dati
a.capobianco1 (16770 points)
14 54 165
by (16.8k points)
Film 1Edizione 1 = oggetto 1
Attore 1, 2 3 hanno oggetto 1

Film 1 Edizione 2 = oggetto 2
Attore 1, 4 e 5 = oggetto 2

Come puoi vedere l'oggetto film della seconda edizione ha sovrascritto quello della prima e attore 1 ha l'oggetto film aggiornato... Cosa succede se confronti oggetto Film di attore 2 e 3 con relativo oggetto Film nel Catalogo?
andrea.sterbini (208020 points)
756 1270 2377
by (208k points)
edited by
Bel casino ... Marilyn Monroe appare in "Monkey Business" del 1952 ma c'è anche quello dei fratelli Marx del 1931 e a seconda di in che ordine vengono inseriti nel catalogo_film i test danno risultato diverso.
Potrei eliminare dal file tutti i film doppioni in modo che questo problema non sussista più e i vostri codici non debbano essere modificati.
Peccato che il numero di registi cambia.
a.capobianco1 (16770 points)
14 54 165
by (16.8k points)
edited by
Si immagino di sì.
E potrei levare 2 if :-) e riordinare la lettura

Edit:
solo che in caso decidesse di modificare, dovrebbero essere cancellate le edizioni  comparse per prime.. Altrimenti Marylin Monroe non avrebbe un film in cui girare :)
Riedit:
oppure cambia le voci di confronto nei test...
andrea.sterbini (208020 points)
756 1270 2377
by (208k points)

Dato che il numero di registi cambia se tolgo dei film non vorrei modificare il file o i test.

AGGIUNGO IL VINCOLO: IN CASO DI PIÙ FILM CON STESSO TITOLO E ANNO DIVERSO TENETE SOLO L'ULTIMO ANNO.

Spero che questo sia sufficiente ... tutti i test con questo IF mi passano così come sono.