logo

AtributoError em Python

O que é um erro?

Nas linguagens de programação, se executarmos algum código de forma inválida, a execução do programa será interrompida com uma mensagem e esta mensagem é chamada de erro ou exceção. Existem certos tipos de erros em uma linguagem de programação por diferentes motivos. Alguns deles são os seguintes:

Erro de afirmação:

Esse tipo de erro ocorre quando condições de asserção ou instruções falham no código.

Erro de importação:

Este erro ocorre quando importamos algum módulo no arquivo e se esse módulo não existe.

Erro de índice:

o que é envio de diretório

Ocorre quando, para qualquer sequência, seu índice está fora do intervalo.

Erro-chave:

Este erro é gerado em Python quando não conseguimos encontrar nenhuma chave no dicionário.

NomeErro:

Este erro pode ocorrer quando não encontramos nenhuma variável no escopo local ou global.

Erro de tempo de execução:

Este erro será gerado quando o erro não puder ser categorizado em nenhum tipo.

Erro de recuo:

Quando usamos o recuo errado no código Python, ocorrerá IndentationError.

Erro no sistema:

Quando houver um erro interno, SystemError será gerado pelo interpretador.

Erro Unicode:

Quando houver um erro de codificação ou decodificação relacionado ao Unicode e UnicodeError será gerado.

Erro de valor:

Quando em uma função passamos o argumento correto de acordo com o tipo de dado, mas o valor não é adequado, então o erro que ocorreu é denominado ValueError.

Erro ZeroDivision:

Como sabemos, em matemática não podemos dividir nenhum número por zero porque o resultado tende ao infinito. Portanto, se escrevemos qualquer afirmação sobre divisão por zero ou módulo por zero, o erro gerado será ZeroDivisionError.

EOFError:

Quando usamos a função input() para obter a entrada de um arquivo e chegamos ao final do arquivo, esse erro será gerado para indicar que chegamos ao final do arquivo e agora não podemos pegar nenhum entrada do arquivo.

Este artigo é dedicado principalmente ao AttributeError.

O que é AttributeError?

Este erro ocorre no programa quando há falha no condicionamento na atribuição do atributo. Por exemplo, se atribuirmos algum valor a uma variável inteira e tentarmos usar qualquer função de string dessa variável, isso gerará AttributeError.

Podemos entender o motivo do AttributeError em Python pelos seguintes exemplos:

Exemplo 1:

Quando aplicamos uma função em um tipo de dados diferente, o que não é possível

 a=15 a.append('javatpoint') 

Saída:

AtributoError em Python

Explicação:

No código acima, temos uma variável inteira e a inicializamos com o valor 15. Agora, se usarmos a função de acréscimo na variável a, ela fornecerá o AttributeError, que diz que não há nenhum atributo como acréscimo no tipo de dados inteiro.

Exemplo2:

Há chances de AttributeError na grafia errada do atributo.

 string = 'you will learn each coding tutorial from '.fst('Javatpoint') print(string) 

Saída:

AtributoError em Python

Explicação:

No código acima, temos um atributo string, e aplicamos o atributo fst, então haverá AttributeError de que este atributo não existe para a variável.

Exemplo3:

Podemos obter AttributeError se tentarmos fazer uma referência errada para qualquer variável de classe.

 class Javatpoint(): def __init__(self): self.var1 = 'This is for JavatPoint' obj = Javatpoint() print(obj.var1) print(obj.var2) 

Saída:

AtributoError em Python

Explicação:

No código acima, temos uma classe e existe uma variável chamada var1. Criamos o objeto da classe, e por engano, referenciamos a variável var2 errada daquela classe que ainda não existe, então com certeza haverá um AttributeError.

A solução para resolver o erro ou exceção:

Em Python ou em qualquer linguagem de programação, podemos usar tratamento de exceções ou erros usando instruções try e except.

Exemplo 4:

 class Javatpoint(): def __init__(self): self.var1 = 'This is for javatpoint' obj = Javatpoint() try: print(obj.var1) print(obj.var2) except AttributeError: print('There is no such attribute') 

Saída:

AtributoError em Python

Explicação:

No código acima, temos uma classe e uma variável chamada var1. Na instrução try, tentamos fazer referência a var1 e var2. Seremos capazes de desreferenciar o var1 e imprimiremos a instrução para ele, mas obteremos o AttributeError para referenciar o var2. Assim, o programa irá para o bloco except e imprimiremos a instrução, que é escrita apenas para a condição de erro.