Gli attributi sono valori o funzioni associati a un oggetto, un tipo di dati o una classe. Se chiami un attributo su un valore il cui tipo di dati o classe non supporta quell’attributo, incontrerai un AttributeError.
Questa guida spiega cos’è un AttributeError e cosa significa. Esamineremo un esempio di un AttributeError in modo che tu possa imparare a correggerne uno nel tuo codice.
Che cos’è un Python AttributeError?
Quando provi viene generato un errore Python AttributeError per chiamare un attributo di un oggetto il cui tipo non supporta quel metodo. Ad esempio, provare a utilizzare il metodo Python append() su una stringa restituisce un AttributeError perché le stringhe non supportano append().
In una classe Python, puoi definire metodi e valori condivisi dal oggetti di quella classe. Questo è il motivo per cui alcune persone pensano alle classi come progetti per oggetti.
Chiamare un metodo o una classe è un altro modo per dire che si fa riferimento a un attributo di quella classe. Un modo di pensare a un attributo è come un attributo fisico di una persona. Alcune persone hanno gli occhi azzurri. Alcune persone hanno i capelli tinti di rosa. Questi sono tutti attributi.
In una classe Python, un attributo potrebbe essere "eye_color". Questo attributo potrebbe definire il colore degli occhi di una persona. Un attributo potrebbe anche essere una funzione. Una funzione chiamata changeEyeColor() potrebbe modificare il valore di "eye_color".
I tipi di dati hanno attributi. Ad esempio, puoi usare il metodo Python join() per convertire una stringa in una lista. Gli oggetti stringa supportano il metodo join().
Se provi a fare riferimento a una funzione o a un valore non associato a un oggetto classe o a un tipo di dati, incontrerai un AttributeError .
L’81% dei partecipanti ha dichiarato di sentirsi più sicuro delle proprie prospettive di lavoro nel settore tecnologico dopo aver partecipato a un bootcamp. Fatti abbinare a un bootcamp oggi.
Il laureato medio di un bootcamp ha trascorso meno di sei mesi nella transizione di carriera, dall’inizio di un bootcamp alla ricerca del primo lavoro.
Scriviamo un programma che unisce due liste di scarpe. Due negozi di scarpe stanno attraversando una fusione e vogliono fare un elenco di tutte le scarpe uniche che vendono.
Per iniziare, definiamo un set Python che contiene le scarpe del primo negozio, Harrisons Shoes:
Usiamo bretelle ricci per definire il nostro set. Successivamente, definiamo un set con i nomi delle scarpe offerte dal negozio che si sta fondendo con Harrisons. Questo negozio di scarpe si chiama Shoe Emporium:
Poiché queste due collezioni sono insiemi, possono memorizzare solo valori univoci. Ciò significa che quando li sommiamo, otterremo un insieme senza valori duplicati.
Per sommare i nostri insiemi, utilizzeremo la funzione integrata chiamata extend():
Le extend() aggiunge tutte le scarpe dal "shoe_emporium" impostato su "harrisons_shoes" set. Usiamo un’istruzione Python print(). Questo ci permette di vedere tutte le scarpe nel nostro nuovo set. Eseguiamo il nostro codice e vediamo cosa succede:
Il nostro codice restituisce un AttributeError.
Il nostro messaggio di errore ci dice che non possiamo usare il metodo extend() su un oggetto il cui tipo di dati è un insieme. Questo perché extend() è un metodo di elenco. Non è supportato dagli insiemi.
Se vogliamo unire i nostri due insiemi, dobbiamo usare un segno di addizione:
Questo aggiungerà il contenuto del "shoe_emporium" impostato su "harrisons_shoes" set. Quindi stampiamo tutti i valori nella cartella "harrisons_shoes" impostato sulla console. Eseguiamo il nostro nuovo programma:
Il nostro programma restituisce un set con tutte le scarpe dei nostri due set originali. Mentre c’erano sei valori nei nostri due set originali, ora ce ne sono solo cinque. Questo perché due scarpe erano uguali e i set possono memorizzare solo valori univoci.