Python Hasattr

Python Hasattr
O Python é um idioma de alto nível, avançado e inglês, como sintaxe, fácil de aprender. Possui vários tipos de funções, métodos, principalmente embutidos, enquanto alguns podem ser projetados em tempo de execução. O hasattr () é uma função de utilidade interna de Python abreviada como 'tem um atributo.'Pode ser usado com classes definidas pelo usuário. Determina se um objeto tem ou não um atributo específico. Por exemplo, ele retorna true se um determinado objeto tiver o atributo especificado, enquanto retorna false se não tiver um objeto especificado. A sintaxe de hasattr () é hasattr (objeto, atributo).

O Hasattr () é a própria função, 'objeto' refere -se ao objeto necessário, 'atributo' refere -se ao nome do atributo especificado que precisa ser verificado. Se o 'objeto' tiver o 'atributo', hasattr () retornará verdadeiro, ele retornará falso. A função hasattr () fornece melhor legibilidade em comparação com outros métodos python convencionais usados ​​para verificar o valor do atributo. Também é útil na verificação das chaves para ignorar erros desnecessários encontrados ao verificar as chaves ausentes. Com a ajuda de exemplos, aprenderemos a empregar o método hasattr () da linguagem python neste artigo. Você poderá usar efetivamente a função Hasattr () em seus scripts até o final deste artigo. Vamos começar com uma ilustração básica.

Exemplo 1:

No primeiro exemplo, definiremos uma classe simples que contém o nome de um aluno e a aula em que o aluno estuda. Depois disso, verificaremos os atributos da classe com a função hasattr (). Uma classe definida pelo usuário é criada com o nome 'aluno', o primeiro atributo é 'classe' e tem valor '5', enquanto o segundo atributo é 'nome' e tem valor 'tylor.'O próximo passo é verificar os atributos da classe com a função hasattr (). Primeiro, verificamos o atributo 'Nome' da classe, depois o atributo 'Classe' e depois o atributo 'Fathername'. Aqui você pode ver o código.

Aluno da aula:
Class = 5
Nome = 'tylor'
Aluno = aluno ()
Print ('O nome do aluno é:', Hasattr (aluno, 'nome')))
Print ('aula do aluno é:', Hasattr (estudante, 'classe')))
Print ('o nome do pai do aluno é:', hasattr (estudante, 'nome do fato')))

A saída do código acima é a seguinte:

Se você observar que as duas primeiras saídas são 'verdadeiras.'Por outro lado, a última saída é' falsa.'Como discutido anteriormente, o hassttr () retornará' True ', se um objeto especificado tiver um certo objeto especificado. Por outro lado, ele retorna 'falso' se o determinado objeto não tiver um determinado objeto especificado. O "aluno" da turma tem dois atributos, "Classe", "enquanto não possui o atributo" Fathername ", e é por isso que a função Hasattr () retorna" falsa "neste caso.

Exemplo 2:

Vejamos alguns programas complicados, porém estruturados, para nos familiarizar. Aqui, definimos uma classe usando a função def_init_ (). A turma está novamente consistindo nos dados dos alunos. Tem dois atributos, 'rollno' e 'notas.'Os dados são fornecidos aos dois atributos da classe chamando o nome da classe; estudante (35, 'm'), onde '35' é o 'rollno' e 'm' é a nota do aluno. Mais tarde, adicionamos outro atributo na classe: a idade do aluno. Isso podemos alcançar criando outra instância da classe com outro nome especificado; Por exemplo, Student1 = Student () e Student1.idade = 9. Consulte o código fornecido abaixo para obter uma compreensão clara do programa.

Aluno da aula:
def __init __ (Selff, rollno, notas):
Selff.rollno = rollno
Selff.Númeras = notas
def Display (SELFF):
print ("O número do rolo é:", Selff.Núm. da lista)
print ("A nota é:", Selff.notas)
aluno1 = aluno (35, 'm')
Student1.idade = 9
Imprimir (Hasattr (Student1, 'Age')))

A saída do código acima é a seguinte:

Como você pode ver, a função Hasattr () retornou 'True' desde que o atributo 'Age' é adicionado à classe em etapas posteriores.

Exemplo 3:

Vamos ter uma análise de desempenho da função Hasattr () em comparação com a instrução TRY. Neste exemplo, veremos qual é o melhor, a função hasattr () ou a declaração de tentativa da linguagem python. Vamos ver o código e a saída primeiro, e depois veremos qual é o melhor que o outro.

tempo de importação
Comparação de classe:
name = "hasattribute"
tempo = 5
comp = comparação ()
starthasattr = tempo.tempo()
if (hasattr (comp, 'time')):
print ("hora está lá")
outro:
Imprimir ("No Time")
print ("The Hasattr () levou um tempo para executar:" + str (tempo.time () - starthasattr))
StartTry = Time.tempo()
tentar:
Imprimir (comp.tempo)
print ("hora está lá")
Exceto AttributeError:
Imprimir ("No Time")
print ("A declaração de tentativa levou um tempo para executar:" + str (tempo.time () - StartTry))

Como você pode ver, a classe 'comparação' tem dois atributos, 'nome' e 'tempo.'Primeiro, implementamos a função Hasattr () para verificar se a classe' comparação 'tem o atributo' tempo 'ou não. Em seguida, verificamos o tempo de execução de ambas as funções hasattr () e tentamos a declaração com a ajuda da função do tempo. A saída do código acima é dada abaixo:

Observe que o hasattr () retornou 'false', mas a classe 'comparação' tem o tempo de atributo '.'O ponto -chave a ser observado aqui é que passamos' tempo 'em hasattr () enquanto a classe' comparação 'tem um atributo' time '. O Python é uma linguagem sensível ao caso, então 'tempo' e 'tempo' são dois atributos diferentes. Além disso, se você vir o tempo de execução, notará que a declaração de tentativa é mais rápida que a função hasattr (). No entanto, a função hasattr () fornece melhor legibilidade, e é por isso que o hasattr () ainda é preferido sobre a declaração de tentativa.

Conclusão:

Aprendemos sobre a função interna python hasattr () neste artigo. Com a ajuda de exemplos simples e complexos, aprendemos a implementar a função Hasattr () em nossos programas. Além disso, comparamos o tempo de execução do hasattr () com a declaração de tentativa, que provou que, embora a declaração de tentativa seja rápida, a função hasattr () é preferida devido à sua legibilidade aprimorada.