Javascript List Metodi Di Classe

| | | | | | | | | | | | | | | |

Gli argomenti nei metodi Python devono essere specificati tra parentesi. Questo perché sia ‚Äã‚Äãle funzioni che i metodi usano le parentesi per indicare se vengono chiamate. Se utilizzi le parentesi quadre per chiamare un metodo, incontrerai un "TypeError: ‚Äòmethod‚Äô l’oggetto non è sottoscrivibile" errore.

In questa guida, discutiamo cosa significa questo errore e perché potresti riscontrarlo. Esaminiamo un esempio di questo errore per aiutarti a sviluppare una soluzione.

TypeError: ‚Äòmethod‚Äô l’oggetto non è sottoscrivibile

Gli oggetti sottoscrivibili sono oggetti con un metodo __getitem__. Questi sono tipi di dati come elenchi, dizionari e tuple. Il metodo __getitem__ consente all’interprete Python di recuperare un singolo elemento da una raccolta.

Non tutti gli oggetti sono sottoscrivibili. I metodi, per esempio, non lo sono. Questo perché non implementano il metodo __getitem__. Ciò significa che non è possibile utilizzare la sintassi delle parentesi quadre per accedere agli elementi in un metodo o per chiamare un metodo.

Considera il seguente frammento di codice:

Questo codice restituisce "Edam", il formaggio nella posizione di indice 0. Non possiamo usare le parentesi quadre per chiamare una funzione o un metodo perché le funzioni e i metodi non sono oggetti sottoscrivibili.

Uno scenario di esempio

Qui creiamo un programma che memorizza i formaggi negli oggetti. Il "Formaggio" La classe che usiamo per definire un formaggio avrà un metodo che ci consentirà di verificare se un formaggio proviene da un particolare paese di origine.

Inizia da definire una classe per i nostri formaggi. Chiamiamo questa classe Cheese:

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’avvio di un bootcamp alla ricerca del primo lavoro.

La nostra classe contiene due metodi. Il primo metodo definisce la struttura dell’oggetto Cheese. La seconda ci permette di verificare se il paese di origine di un formaggio è uguale a un determinato valore.

Successivamente, creiamo un oggetto dalla nostra classe Cheese:

La variabile "edam" è un oggetto. Il nome associato al formaggio è Edam e il suo paese di origine sono i Paesi Bassi.< br>

Successivamente, chiamiamo il nostro metodo get_country():

Questo codice esegue il metodo get_country() dalla classe Cheese. Il < Il metodo code>get_country() verifica se il valore di "origin" nel nostro oggetto "edam" è uguale a "Germany".

Esegui il nostro codice e vedi cosa succede:

Si è verificato un errore nel nostro codice.

Analizziamo la riga di codice che il debugger Python ha identificato come errato:

In questa riga di codice, usiamo le parentesi quadre per chiamare il metodo get_country(). Questa non è una sintassi accettabile perché le parentesi quadre vengono utilizzate per accedere agli elementi di un elenco. Poiché le funzioni e gli oggetti non sono sottoscrivibili, non possiamo usare le parentesi quadre per chiamarli.

Per risolvere questo errore, dobbiamo sostituire le parentesi quadre con parentesi graffe:

Eseguiamo il nostro codice e vediamo cosa succede:

Il nostro codice viene eseguito correttamente. Proviamo a verificare se Edam è di "Paesi Bassi" per assicurarci che la nostra funzione funzioni in tutti i casi, indipendentemente dal fatto che il valore che specifichiamo sia uguale al paese di origine del formaggio:

Il nostro codice restituisce:

Il nostro codice funziona se il valore che specifichiamo è uguale al paese di origine di un formaggio.

Conclusione

L’errore "TypeError: ‚Äòmethod‚Äô non sottoscrivibile" viene generato quando si utilizzano parentesi quadre per chiamare un metodo all’interno di una classe. Per risolvere questo errore , assicurati di chiamare solo i metodi di una classe utilizzando parentesi graffe dopo il nome del metodo che desideri chiamare.

Ora sei pronto per risolvere questo errore Python comune come un programmatore professionale!