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

Do you need help?

not subscriptable

e
el_libregome (870 points)
11 35 43
in Es3 by (870 points)
sapete come mai mi dia questo errore nel richiamare la funzione nome per i coprotagonisti, nonostante mi funzioni per l'attore di partenza?
632 views
closed

1 Answer

Best answer
_andrea_ (45670 points)
13 42 297
by (45.7k points)
selected by
Not subscriptable se non sbaglio significa che da qualche parte stai facendo una cosa tipo variabile[x] ma la variabile non è una lista e non puoi usare le quadre. Potrei sbagliare ma controlla dove usi le quadre
e
el_libregome (870 points)
11 35 43
by (870 points)
uso self.data["name"][0] e nel primo caso mi funziona. è l'unico modo che ho trovato per ricavarmi il nome dell'attore a partire dal dizionario
e
el_libregome (870 points)
11 35 43
by (870 points)
eventualmente avresti qualche suggerimento per un metodo alternativo?
_andrea_ (45670 points)
13 42 297
by (45.7k points)
Ovviamente a partire da data il metodo è per forza quello. Ma di cosa ti dice che non è subscriptable? Su che oggetto te lo dice?
e
el_libregome (870 points)
11 35 43
by (870 points)
sull'oggetto attore dell'insieme dei coprotagonisti
I
InnerAlbeiro (550 points)
1 2 7
by (550 points)

Quello è perchè ogni tanto in self.data["name"][0] trova una lista vuota e quindi non trova la posizione 0 di self.data["name"], penso sia quello 

_andrea_ (45670 points)
13 42 297
by (45.7k points)
Allora significa che stai cercando di fare una cosa tipo Attore[x]
_andrea_ (45670 points)
13 42 297
by (45.7k points)
No InnerAlbeiro, quello sarebbe out of range perché non esiste la posizione 0. Not subscriptable significa che stai cercando di ottenere la posizione da qualcosa che non ha posizioni. Tipo 4[1] sarebbe non subscriptable, e anche a=Attore(data), a[0] sarebbe non subscriptable
e
el_libregome (870 points)
11 35 43
by (870 points)
e perciò come si può risolvere la cosa? sto un po in crisi...
_andrea_ (45670 points)
13 42 297
by (45.7k points)
Te l'ho detto, da qualche parte stai usando le parentesi quadre su un oggetto di tipo attore, che ovviamente non le supporta. Trova quel punto di codice, cerca ovunque usi le quadre e trova il punto in cui le usi su un oggetto di tipo attore. Quello è l'errore
_andrea_ (45670 points)
13 42 297
by (45.7k points)
Ma quindi l'errore per intero è una cosa tipo "type Attore is not subscriptable"?
e
el_libregome (870 points)
11 35 43
by (870 points)
'Attore' object is not subscriptable
_andrea_ (45670 points)
13 42 297
by (45.7k points)
Allora è sicuramente come dico io
e
el_libregome (870 points)
11 35 43
by (870 points)
ok allora provo.

grazie