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

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

AttributeError: 'set' object has no attribute 'attorefilms'

V
Virtnet (1230 points)
4 32 43
in Es3 by (1.2k points)
Ciao,
Ancora sto provando risolvere questa funzione (Attore.films)
Ho fatto un set vuoto nell __init__ di Attore che si chiama attorefilms.
Nella funzione leggi_archivio_film ho fatto un dizinario che contiene gli attori ed i loro filmi ,ogni iterazione su films.json. metto in attorefilms i filmi del . ma quando faccio Attore.films(attorefilms)

attorefilms = {'The Dark Knight', 'Candy', "Monster's Ball", 'Brokeback Mountain', 'Two Hands', '10 Things I Hate About You'}

mi da questo errore

    return self.attorefilms

AttributeError: 'set' object has no attribute 'attorefilms'
516 views

2 Answers

_andrea_ (45670 points)
11 42 297
by (45.7k points)
Ma perché passi un insieme come parametro al metodo films?
V
Virtnet (1230 points)
4 32 43
by (1.2k points)
Ho fatto un errore :/ , ora ho fatto come il proff ha detto. ma cmq mi dice "AssertionError: 0 != 8 : I film tornati devono essere 8"
_andrea_ (45670 points)
11 42 297
by (45.7k points)
Devi aggiungerli al set, tu lo inizializzi vuoto ma non lo aggiorni
V
Virtnet (1230 points)
4 32 43
by (1.2k points)
lo aggiorno con "oggetto.attorefilm = valore" nel leggi_archivio_film funzione, secondo te è giusto fare cosi?
Oppure devo madare questi dati a class Film e fare queste cose li?
_andrea_ (45670 points)
11 42 297
by (45.7k points)
Se attorefilm è un insieme allora devi fare oggetto.attorefilm.add(film) per aggiungere ogni film all'insieme
V
Virtnet (1230 points)
4 32 43
by (1.2k points)
Se inserisco questi dati al dizinario catalogo_film questo va bene?
Perchè non riesco a capire questo
    La funzione leggi_archivio_film deve fare in modo che:
    - all'interno di ciascun oggetto Film siano inseriti gli oggetti Attore in modo che:
        - ogni Film contenga gli Attori che ci hanno lavorato
        - ogni Attore contenga i Film in cui è comparso
    - all'interno di ciascun oggetto Film siano contenuti gli oggetti di tipo Regista in modo che:
        - ogni Film contenga i Registi che l'hanno diretto
        - ogni Regista contenga i Film che ha diretto

Forse qualcuno mi può spiegare in L'inglese?
_andrea_ (45670 points)
11 42 297
by (45.7k points)
Every Film object must have a set in which you must add every Attore object that worked in that film
Every Attore object must have a set in which you must add avery film in which the Attore worked
Every Regista object must have a set in which you must add every Film object directed by the Regista
Every Film object must have a set in which you must add every Regista object that directed the Film
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
Da come la scrivi attorefim è una variabile locale alla funzione/metodo in cui è definita.

Per settare un attributo di un oggetto devi scrivere oggetto.attorefilm = valore