classi Python devono essere istanziate, o chiamate, prima di poter accedere ai loro metodi. Se dimentichi di creare un’istanza di un oggetto di una classe e provi ad accedere a un metodo di classe, riscontri un errore che dice "manca 1 argomento posizionale richiesto: ‚Äòself‚Äô".
In questo guida, parliamo di cosa significa questo errore e perché viene sollevato. Esaminiamo un esempio di questo errore in azione per aiutarti a capire come risolverlo.
1 argomento posizionale obbligatorio mancante: ‘self’
Gli argomenti posizionali si riferiscono a dati che sono passato a una funzione. In una classe, a ogni funzione deve essere assegnato il valore "self". Il valore di "sé" è simile a "questo" in JavaScript. "sé" rappresenta i dati memorizzati in un oggetto di una classe.
Quando chiami un metodo di classe senza prima istanziare un oggetto di quella classe, ricevi un errore. Questo perché "sé" non ha valore finché un oggetto non è stato istanziato.
Gli errori più comuni commessi che causano l’errore "1 argomento posizionale obbligatorio mancante: ‚Äòself‚Äô" gli errori sono:
- Dimenticare di istanziare un oggetto di una classe
- Utilizzare la sintassi errata per istanziare una classe
Esaminiamo ciascuna di queste cause singolarmente.
Causa n. 1: dimenticare di istanziare un oggetto
Un oggetto deve essere istanziato prima di poter accedere a un metodo in una classe.< br>
Definisci una classe che memorizza informazioni su un eroe in un videogioco:
l’81% dei partecipanti ha dichiarato di sentirsi più sicuro delle proprie prospettive di lavoro nel settore tecnologico dopo aver frequentato un bootcamp. Fatti abbinare a un bootcamp oggi.
Il laureato medio del bootcamp ha trascorso meno di sei mesi nella transizione di carriera, dall’avvio di un bootcamp alla ricerca del primo lavoro.
Poi, aggiungiamo un funzione alla nostra classe. Le funzioni all’interno delle classi sono chiamate metodi. Questo metodo stampa il nome di un giocatore e il suo tipo di giocatore:
Prova ad accedere alla nostra classe in modo che possiamo creare un giocatore: ;
Abbiamo creato un oggetto assegnato alla variabile "luke". Questo oggetto è derivato dalla classe Hero. Chiamiamo il metodo show_player()
per mostrare informazioni sul player.