L'oggetto Python non è un errore richiamabile

L'oggetto Python non è un errore richiamabile
L'oggetto non l'errore non richiamabile è comune in Python ed è causato quando l'utente cerca di creare una variabile nominandolo uguale a una parola chiave riservata, causando così il programma di distinguere tra il nome della variabile e la parola chiave riservata. Questo post fungerà da guida e spiegherà i motivi e la soluzione all'errore "oggetto non richiamabile" in Python.

Motivo 1: denominazione non valida di variabile in Python

Come accennato in precedenza, questo errore può essere causato quando l'utente nomina una variabile pari a una parola chiave riservata e utilizza anche quella parola chiave riservata all'interno dello stesso programma. Un esempio per dimostrare questo errore può essere ricreato utilizzando il seguente frammento di codice:

int = 5
var1 = int (7)
per i in gamma (1, var1):
Stampa (i * 5)

Quando esegui questo codice, produrrà:

In questo esempio, l'errore è causato perché il programma sta cercando di chiamare la variabile creata dall'utente "int" come funzione, che non è possibile.

Soluzione: fornire identificatori adeguati alle variabili

Per risolvere questo problema, l'utente può fornire un nome diverso alla variabile alla prima riga e il codice corretto per questo esempio è:

a = 5
var1 = int (7)
per i in gamma (1, var1):
Stampa (i * 5)

Quando questo codice viene eseguito ora, produrrà il seguente risultato sul terminale:

Come puoi vedere che il programma ha eseguito correttamente senza errori.

Motivo 2: chiamata errata al metodo del modulo importato

Questo errore si verifica anche quando l'utente non utilizza correttamente l'importazione del modulo durante l'accesso ai suoi metodi; Per dimostrarlo, prendi il seguente frammento di codice:

Società di importazione
var1 = socket (socket.Af_inet, socket.Sock_Stream)
Stampa ("L'output della variabile socket è come:")
Stampa (var1)

In questo frammento di codice:

  • L'utente ha importato il modulo "socket" nel codice
  • Questo modulo ha un metodo denominato come Socket () e l'utente sta effettuando una chiamata senza menzionare il nome del modulo con un operatore DOT

Quando viene eseguito questo codice, produce il seguente risultato:

Vediamo come correggere questo errore.

Soluzione 1: utilizzare il nome del modulo con operatore DOT

Bene, questa soluzione è piuttosto semplice; Quando si chiama il metodo, utilizzare il nome del modulo e accedere al suo metodo dopo aver applicato l'operatore DOT, come: così:

Società di importazione
var1 = socket.Socket (presa.Af_inet, socket.Sock_Stream)
Stampa ("L'output della variabile socket è come:")
Stampa (var1)

Questa volta in cui viene eseguito il codice, produce il seguente risultato sul terminale:

Come puoi vedere, il programma è stato in grado di eseguire senza errori.

Soluzione 2: utilizzando l'approccio da import

Se non si desidera utilizzare nuovamente il nome del modulo durante tutto il programma, è possibile modificare il modo in cui stai importando il modulo nel programma; e invece di usare il "Modulo di importazione,"Puoi usare il"dall'importazione del modulo *". Ciò che fa è che aggiunge direttamente i metodi del modulo nel programma.

Con questa soluzione, il codice corretto è:

dall'importazione di socket *
var1 = socket (af_inet, Sock_stream)
Stampa ("L'output della variabile socket è come:")
Stampa (var1)

Questa volta quando viene eseguito questo codice, produrrà il seguente risultato:

L'output conferma che l'errore è stato evitato con successo.

Conclusione

L'errore Python "L'oggetto non è richiamabile" è spesso causato chiamando una variabile come funzione/modulo quando quella variabile sta solo memorizzando un valore semplice invece di essere un metodo. Inoltre, quando il nome della variabile è impostato come parola chiave riservata per il metodo integrato e il metodo integrato viene utilizzato anche all'interno dello stesso programma, provoca anche questo errore. Un ultimo motivo comune di questo errore è il modo errato di importare un modulo e chiamare il suo metodo, che è stato spiegato in questa guida.