Objeto python não é um erro chamável

Objeto python não é um erro chamável
O objeto que não é o erro indicável é comum no python e é causado quando o usuário tenta criar uma variável, nomeando -a igual a uma palavra -chave reservada, fazendo com que o programa falhe em diferenciar entre o nome da variável e a palavra -chave reservada. Esta posta.

Razão 1: Nomeação inválida da variável no Python

Como mencionado acima, esse erro pode ser causado quando os nomes de usuário uma variável igual a uma palavra -chave reservada e usa essa palavra -chave reservada dentro do mesmo programa também. Um exemplo para demonstrar esse erro pode ser recriado usando o seguinte snippet de código:

int = 5
var1 = int (7)
para i no intervalo (1, var1):
Imprimir (i * 5)

Quando você executa este código, ele produzirá:

Neste exemplo, o erro é causado porque o programa está tentando chamar a variável criada pelo usuário "int" como uma função, o que não é possível.

Solução: Forneça identificadores adequados para variáveis

Para corrigir esse problema, o usuário pode fornecer um nome diferente para a variável na primeira linha, e o código correto para este exemplo é:

a = 5
var1 = int (7)
para i no intervalo (1, var1):
Imprimir (i * 5)

Quando este código for executado agora, ele produzirá o seguinte resultado no terminal:

Como você pode ver, o programa foi executado com sucesso sem erros.

Razão 2: Chamada incorreta para o método do módulo importado

Esse erro também ocorre quando o usuário não está usando corretamente a importação do módulo ao acessar seus métodos; Para demonstrar isso, pegue o seguinte snippet de código:

soquete de importação
var1 = soquete (soquete.Af_inet, soquete.Sock_stream)
Print ("A saída da variável de soquete é como:")
Imprimir (var1)

Neste snippet de código:

  • O usuário importou o módulo "soquete" para o código
  • Este módulo tem um método chamado como soquete (), e o usuário está fazendo uma chamada sem mencionar o nome do módulo com um operador de ponto

Quando este código é executado, ele produz o seguinte resultado:

Vamos ver como corrigir este erro.

Solução 1: Use o nome do módulo com operador de ponto

Bem, esta solução é bem direta; Ao ligar para o método, use o nome do módulo e acesse seu método após a aplicação do operador DOT, assim:

soquete de importação
var1 = soquete.soquete (soquete.Af_inet, soquete.Sock_stream)
Print ("A saída da variável de soquete é como:")
Imprimir (var1)

Desta vez, quando o código é executado, ele produz o seguinte resultado no terminal:

Como você pode ver, o programa foi capaz de executar sem erros.

Solução 2: Usando a abordagem de From-Import

Se você não deseja usar o nome do módulo novamente ao longo do programa, poderá alterar a maneira como está importando o módulo em seu programa; e em vez de usar o “Módulo de importação,"Você pode usar o"De importação do módulo *”. O que isso faz é que ele adiciona diretamente os métodos do módulo ao seu programa.

Com esta solução, o código correto é:

De importação de soquete *
var1 = soquete (af_inet, sok_stream)
Print ("A saída da variável de soquete é como:")
Imprimir (var1)

Desta vez, quando este código é executado, ele produzirá o seguinte resultado:

A saída confirma que o erro foi evitado com sucesso.

Conclusão

O erro do python "Objeto não é chamável" é frequentemente causado por uma variável como uma função/módulo quando essa variável está armazenando apenas um valor simples, em vez de ser um método. Além disso, quando o nome da variável é definido como uma palavra-chave reservada para o método interno, e o método interno também é usado no mesmo programa, também causa esse erro. Uma última razão comum para esse erro é a maneira incorreta de importar um módulo e chamar seu método, que foi explicado neste guia.