Entendendo type() e isinstance() em Python: Exemplos Práticos
Entendendo type() e isinstance() em Python: Exemplos Práticos
O que é type() em Python?
O Python tem uma função nativa chamada type() que ajuda a encontrar o tipo de classe da variável dada como entrada. Por exemplo, se a entrada for uma string, a saída será <class 'str'>, para lista será <class 'list'>, etc.
Usando o comando type(), você pode passar um único argumento, e o valor de retorno será o tipo de classe do argumento dado, exemplo: type(objeto).
Também é possível passar três argumentos para type(), ou seja, type(nome, bases, dict), nesse caso, ele retornará um novo objeto tipo.
Neste tutorial, você aprenderá:
- O que é type() em Python?
- Sintaxe para type()
- Exemplo de type()
- Exemplo: Usando type() para objeto de classe.
- Exemplo: Usando nome, bases e dict em type()
- O que é isinstance() em Python?
- Sintaxe isinstance()
- Exemplos de isinstance()
- Diferença entre type() e isinstance() em Python
Sintaxe para type():
type() pode ser usado de duas formas como mostrado abaixo:
type(objeto) type(nome, bases, dict)
Parâmetros: type(objeto)
- objeto: Parâmetro obrigatório. Se este for o único parâmetro passado para type(), retornará o tipo do parâmetro.
Parâmetros: type(nome, bases, dict)
- nome: nome da classe.
- bases: (opcional). Classe base.
- dict: (opcional). Namespace que tem a definição da classe.
Valor de Retorno:
Se o objeto for o único parâmetro passado para type(), retornará o tipo do objeto.
Se os parâmetros passados para type forem type(objeto, bases, dict), nesse caso, retornará um novo tipo de objeto.
Exemplo de type()
Neste exemplo temos um valor string, número, valor float, número complexo, lista, tupla, dict e set. Usaremos as variáveis com type para ver a saída para cada um.
str_lista = "Bem-vindo ao Guru99"
idade = 50
pi = 3.14
c_num = 3j+10
minha_lista = ["A", "B", "C", "D"]
minha_tupla = ("A", "B", "C", "D")
meu_dict = {"A":"a", "B":"b", "C":"c", "D":"d"}
meu_set = {'A', 'B', 'C', 'D'}
print("O tipo é: ", type(str_lista))
print("O tipo é: ", type(idade))
print("O tipo é: ", type(pi))
print("O tipo é: ", type(c_num))
print("O tipo é: ", type(minha_lista))
print("O tipo é: ", type(minha_tupla))
print("O tipo é: ", type(meu_dict))
print("O tipo é: ", type(meu_set))
Saída:
O tipo é: <class 'str'> O tipo é: <class 'int'> O tipo é: <class 'float'> O tipo é: <class 'complex'> O tipo é: <class 'list'> O tipo é: <class 'tuple'> O tipo é: <class 'dict'> O tipo é: <class 'set'>
Exemplo: Usando type() para Objeto de Classe
Quando você verifica o objeto criado a partir de uma classe usando type(), ele retorna o tipo da classe junto com o nome da classe. Neste exemplo, criaremos uma classe e verificaremos o tipo do objeto criado da classe teste.
class Teste:
s = 'testando'
t = Teste()
print(type(t))
Saída: <class '__main__.Teste'>
Exemplo: Usando nome, bases e dict em type()
O type também pode ser chamado usando a sintaxe: type(nome, bases, dict).
Os três parâmetros passados para type() — nome, bases e dict — são os componentes que compõem uma definição de classe. O nome representa o nome da classe, bases é a classe base, e dict é o dicionário de atributos da classe base.
Neste exemplo, vamos usar todos os três parâmetros: nome, bases e dict em type().
class MinhaClasse:
x = 'Hello World'
y = 50
t1 = type('NovaClasse', (MinhaClasse,), dict(x='Hello World', y=50))
print(type(t1))
print(vars(t1))
Saída:
<class 'type'>
{'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}
Quando você passa todos os três argumentos para type(), ajuda a inicializar nova classe com atributos da classe base.
O que é isinstance() em Python?
O isinstance do Python faz parte das funções nativas do Python. O isinstance() recebe dois argumentos e retorna verdadeiro se o primeiro argumento for uma instância do classinfo dado como segundo argumento.
Sintaxe isinstance()
isinstance(objeto, tipo_classe)
Parâmetros
- objeto: Um objeto cuja instância você está comparando com tipo_classe. Retornará verdadeiro se o tipo corresponder, caso contrário falso.
- tipo_classe: Um tipo ou uma classe ou uma tupla de tipos e/ou classes.
Valor de Retorno:
Retornará verdadeiro se o objeto for uma instância de tipo_classe e falso se não for.
Exemplos de isinstance()
Exemplo: isinstance() Verificação de Inteiro
idade = isinstance(51, int)
print("idade é um inteiro:", idade)
Saída: idade é um inteiro: True
Exemplo: isinstance() Verificação de Float
pi = isinstance(3.14, float)
print("pi é um float:", pi)
Saída: pi é um float: True
Exemplo: isinstance() Verificação de String
mensagem = isinstance("Hello World", str)
print("mensagem é uma string:", mensagem)
Saída: mensagem é uma string: True
Exemplo: isinstance() Verificação de Tupla
minha_tupla = isinstance((1,2,3,4,5), tuple)
print("minha_tupla é uma tupla:", minha_tupla)
Saída: minha_tupla é uma tupla: True
Exemplo: isinstance() Verificação de Set
meu_set = isinstance({1,2,3,4,5}, set)
print("meu_set é um set:", meu_set)
Saída: meu_set é um set: True
Exemplo: isinstance() Verificação de Lista
minha_lista = isinstance([1,2,3,4,5], list)
print("minha_lista é uma lista:", minha_lista)
Saída: minha_lista é uma lista: True
Exemplo: isinstance() Verificação de Dict
meu_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"}, dict)
print("meu_dict é um dict:", meu_dict)
Saída: meu_dict é um dict: True
Exemplo: isinstance() Teste em uma Classe
class MinhaClasse:
_mensagem = "Hello World"
_classe = MinhaClasse()
print("_classe é uma instância de MinhaClasse(): ", isinstance(_classe, MinhaClasse))
Saída: _classe é uma instância de MinhaClasse() True
Diferença Entre type() e isinstance() em Python
| type() | isinstance() |
|---|---|
| Função nativa que encontra o tipo de classe da variável dada como entrada. | Função nativa que compara o valor com o tipo dado. Se valor e tipo corresponderem, retorna true, senão false. |
| Valor de retorno é um objeto tipo | Valor de retorno é Booleano (true ou false) |
class A:
minha_listaA = [1,2,3]
class B(A):
minha_listaB = [1,2,3]
print(type(A()) == A)
print(type(B()) == A)
Saída: No caso de type, a verificação de subclasse retorna false. |
class A:
minha_listaA = [1,2,3]
class B(A):
minha_listaB = [1,2,3]
print(isinstance(A(), A))
print(isinstance(B(), A))
Saída: isinstance() retorna verdadeiro quando verificado com subclasse. |
Resumo
- Python tem uma função nativa chamada type() que encontra o tipo de classe da variável dada como entrada.
- Para type(), você pode passar um único argumento, e o retorno será o tipo de classe do argumento.
- Também é possível passar três argumentos para type(), i.e., type(nome, bases, dict), retornando um novo objeto tipo.
- Python tem uma função nativa chamada isinstance() que compara o valor com o tipo dado. Retorna true se corresponder, false caso contrário.
- Usando isinstance(), você pode testar string, float, int, lista, tupla, dict, set, classe, etc.
python
- Expressões, Instruções e Blocos em C#: Guia Completo com Exemplos Práticos
- Dominando Conversão e Casting de Tipos em Python: Guia Completo
- Dominando Números, Conversão de Tipos e Matemática em Python
- Construa um Robô com Raspberry Pi e Python: Guia Completo
- Domine o str.count() do Python: Como Contar Caracteres e Substrings com Exemplos
- Domine Strings format() em Python com Exemplos Claros
- Domine o Método String.find() do Python: Sintaxe, Exemplos e Alternativas
- Dominando Funções Lambda em Python: Exemplos Práticos e Boas Práticas
- Função round() em Python Explicada com Exemplos Práticos
- Dominando a Função map() do Python: Sintaxe, Exemplos e Boas Práticas