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.

Es3 classe Attore

T
Tommaso (1480 points)
3 8 22
in Es3 by (1.5k points)

Ho un problema sulla classe Attore, in particolare sui test di creazione degli Attori (verifica che gli attori abbiano correttamente settati i dati base). L'errore che il test riporta è "TypeError: 'list' object is not callable". Penso che il problema sia nell'init della classe Attore: io setto tutti i parametri nome, genere, età e vero nome prendendoli dall'oggetto data in input all'init. In particolare per l'età la calcolo con un metodo ad hoc sempre all'interno dell'int. Secondo voi sbaglio qualcosa?

942 views

1 Answer

_andrea_ (45670 points)
11 42 297
by (45.7k points)
Sicuramente è lo stesso problema di "int object is not callable" e "str object is not callable". Hai definito un attributo (variabile di classe) e un metodo (funzione di classe) con lo stesso nome, e in particolare l'attributo è una lista. Quindi quando chiami il metodo, python pensa che stai chiamando l'attributo, ma come fosse una funzione, solo che è impossibile e quindi ti dice che non è callable, cioè non puoi chiamarlo come fosse una funzione (cioè con le parentesi)
T
Tommaso (1480 points)
3 8 22
by (1.5k points)
Sì, lo scopo era solo capire se l'errore cambiava. Nell'init praticamente così facendo avevo dei semplici valori di default settati, mentre i vari metodi della classe ritornava i valori di vari self. Così facendo al massimo non doveva passare il test ma non doveva andare in errore typerror
_andrea_ (45670 points)
11 42 297
by (45.7k points)
Ma come fa ad arrivarti a quel test se i valori li assegni tutti uguali?
T
Tommaso (1480 points)
3 8 22
by (1.5k points)
infatti passa i primi tre test, poi il terzo test è quello che va in errore. Va in errore proprio quello in cui crea un oggetto Attore settandogli gli attributi. Lo scopo non è passare il terzo test era solo quello di capire se quell'errore cambiava
_andrea_ (45670 points)
11 42 297
by (45.7k points)
Non so, vedi tutto quello che assegni perché da qualche parte sicuramente hai una lista di troppo
T
Tommaso (1480 points)
3 8 22
by (1.5k points)
Sì forse mi conviene ripartire dalla semplice lettura dei json e ricostruire piano piano le altre classi per capire il problema. Grazie mille.