Do you need any help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2021-22 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 2021-22 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.

VIDEOLEZIONI DEL CORSO DI FONDAMENTI DI PROGRAMMAZIONE AA20-21

PROGRAMMING COURSE VIDEOCONFERENCES AY20-21

Es3 classe Attore

T
Tommaso (1480 points)
0 8 22
asked Dec 15, 2018 in Es3 by Tommaso (1,480 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?

165 views

1 Answer

_andrea_ (45670 points)
2 40 297
answered Dec 15, 2018 by _andrea_ (45,670 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)
0 8 22
commented Dec 16, 2018 by Tommaso (1,480 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)
2 40 297
commented Dec 16, 2018 by _andrea_ (45,670 points)
Ma come fa ad arrivarti a quel test se i valori li assegni tutti uguali?
T
Tommaso (1480 points)
0 8 22
commented Dec 16, 2018 by Tommaso (1,480 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)
2 40 297
commented Dec 17, 2018 by _andrea_ (45,670 points)
Non so, vedi tutto quello che assegni perché da qualche parte sicuramente hai una lista di troppo
T
Tommaso (1480 points)
0 8 22
commented Dec 17, 2018 by Tommaso (1,480 points)
Sì forse mi conviene ripartire dalla semplice lettura dei json e ricostruire piano piano le altre classi per capire il problema. Grazie mille.