python self-argomentazione

Le

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.

Eseguiamo il nostro codice e vediamo cosa succede:

Il nostro codice non funziona. Questo perché non abbiamo istanziato un oggetto di Hero. Hero.show_player() non funziona perché non abbiamo creato un Hero le cui informazioni possono essere visualizzato.

Per risolvere questo errore, istanziamo prima un oggetto prima di chiamare show_player():

Esegui di nuovo il nostro codice:

Il nostro codice viene eseguito correttamente! Per prima cosa abbiamo dichiarato una varia ble chiamato "luke" che memorizza le informazioni su un giocatore chiamato Luke. Il tipo di giocatore di Luke è "Mago". Ora che abbiamo istanziato quell’oggetto, possiamo chiamare il metodo show_player().

Causa n. 2: istanziazione errata di una classe

Il "mancante 1 argomento posizionale richiesto: ‚Äòself‚Äô" errore può verificarsi quando si crea un’istanza errata di una classe. Considera il seguente codice:

Anche se questo codice è simile alla nostra soluzione dell’ultimo esempio, non è corretto. Questo perché non abbiamo aggiunto alcuna parentesi dopo la parola Eroe. Mancando queste parentesi, il nostro programma non sa che vogliamo creare un’istanza di una classe.

Risolvi questo problema aggiungendo parentesi dopo Hero e specificando gli argomenti richiesti, "name" e "player_type":

Il nostro codice ora funziona correttamente e restituisce informazioni sul nostro lettore:

Conclusione

L’argomento posizionale richiesto "1 mancante: ‚Äòsé‚Äô" viene generato un errore quando non si istanzia un oggetto di una classe prima di chiamare un metodo di classe. Questo errore viene generato anche quando si crea un’istanza errata di una classe.

Per risolvere questo errore, assicurati di creare prima un’istanza di un oggetto di una classe prima di provare ad accedere a uno dei metodi di quella classe. Quindi, controlla per assicurarti di utilizzare il giusto sintassi per creare un’istanza di un oggetto.

Ora sei pronto per risolvere questo errore comune come uno sviluppatore esperto di Python!

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method