Função isinstance em Python: Um Guia Completo

Ana Maria Gomes
5 minutos de leitura

Conteúdos do tutorial

A função isinstance é uma ferramenta poderosa e essencial para qualquer programador Python, especialmente para aqueles que já possuem um conhecimento intermediário da linguagem. Neste tutorial, vamos explorar em detalhes como e quando utilizar a função isinstance, com exemplos práticos e comparações com outras abordagens.

O que é a Função isinstance?

A função isinstance é uma função embutida (built-in) em Python que permite verificar se um objeto é uma instância de uma determinada classe ou de uma tupla de classes. Isso é extremamente útil para garantir que estamos lidando com o tipo de dado esperado em diversas situações.

Sintaxe da Função isinstance

A sintaxe básica da função isinstance é a seguinte:

isinstance(obj, classinfo)
  • obj: O objeto que você deseja verificar.
  • classinfo: A classe ou uma tupla de classes contra as quais você deseja verificar o objeto.

Exemplos Práticos de Uso da Função isinstance

Vamos ver alguns exemplos práticos para entender melhor como a função isinstance pode ser utilizada no dia a dia de um programador Python.

Verificando Tipos Simples

Um dos usos mais comuns da função isinstance é verificar se um valor é de um tipo específico, como int, float, str, etc.

valor = 2
if isinstance(valor, int):
    print(f'{valor} é do tipo int')
else:
    print(f'{valor} não é do tipo int')
Testar

Verificando Múltiplos Tipos

A função isinstance também permite verificar se um objeto é de um dos vários tipos especificados em uma tupla. Isso é útil quando você deseja aceitar múltiplos tipos de dados.

valor = 10.5
if isinstance(valor, (int, float)):
    print(f'{valor} é numérico')
else:
    print(f'{valor} não é numérico')
Testar

Comparação com a Função type

Embora seja possível usar a função type para verificar o tipo de um objeto, a função isinstance é geralmente preferida por ser mais clara e flexível. Veja a comparação:

# Usando type
valor = 2
if type(valor) == int:
    print(f'{valor} é do tipo int')
else:
    print(f'{valor} não é do tipo int')

# Usando isinstance
if isinstance(valor, int):
    print(f'{valor} é do tipo int')
else:
    print(f'{valor} não é do tipo int')
Testar

A função isinstance é mais legível e permite verificar subtipos, o que não é possível com a função type.

Boas Práticas ao Usar a Função isinstance

Clareza e Legibilidade

Sempre prefira usar isinstance no lugar de checagens como if type(valor) == int, tanto por questão de clareza (essa função foi criada justamente para isso), quanto por praticidade (é possível checar “subtipos”, e mais de um tipo de uma vez).

Evitando Erros Comuns

Um erro comum é esquecer que a função isinstance pode verificar múltiplos tipos ao mesmo tempo. Isso pode simplificar muito o código e evitar redundâncias.

# Código redundante
valor = 10.5
if type(valor) == int or type(valor) == float:
    print(f'{valor} é numérico')
else:
    print(f'{valor} não é numérico')

# Código simplificado com isinstance
if isinstance(valor, (int, float)):
    print(f'{valor} é numérico')
else:
    print(f'{valor} não é numérico')
Testar

Conclusão

A função isinstance é uma ferramenta indispensável para qualquer programador Python que deseja escrever código claro, legível e eficiente. Ela não só facilita a verificação de tipos, mas também torna o código mais robusto e menos propenso a erros. Esperamos que este tutorial tenha ajudado você a entender melhor como e quando usar a função isinstance em seus projetos Python.

Se você tem alguma dúvida ou gostaria de compartilhar suas experiências com a função isinstance, deixe um comentário abaixo!

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse: