type() e isinstance() em Python com exemplos

O que é type() em Python?

Python tem uma função integrada chamada type() que ajuda a encontrar o tipo de classe da variável fornecida como entrada. Por exemplo, se a entrada for uma string, você obterá a saída como , para a lista, será , etc.

Usando o comando type(), você pode passar um único argumento, e o valor de retorno será o tipo de classe do argumento fornecido, exemplo: type(object).

Também é possível passar três argumentos para type(), ou seja, type(name, bases, dict), nesse caso, ele retornará um novo objeto de tipo.

Sintaxe para tipo()

type() pode ser usado de duas maneiras, conforme mostrado abaixo:

 type(object)
type(namr, bases, dict)

Parâmetros Técnicos : tipo (objeto)

  • objeto: Este é um parâmetro obrigatório. Se este for apenas um parâmetro passado para type(), ele retornará o tipo do parâmetro.

Parâmetros Técnicos : tipo (nome, bases, ditado)

  • nome: nome da classe.
  • bases: (opcional). Este é um parâmetro opcional e é a classe base
  • ditar: (opcional). Este é um parâmetro opcional e é um namespace que contém a definição da classe.

Valor de retorno

Se o objeto for o único parâmetro passado para type() então ele retornará o tipo do objeto.

Se os parâmetros passados ​​​​para type forem do tipo (objeto, bases, dict), nesse caso, ele retornará um novo tipo de objeto.

Exemplo de tipo()

Neste exemplo, temos um valor de string, número, valor flutuante, um número complexo, lista, tupla, ditado e conjunto. Usaremos as variáveis ​​com tipo para ver a saída de cada uma delas.

str_list = "Welcome to Guru99"
age = 50
pi = 3.14
c_num = 3j+10
my_list = ["A", "B", "C", "D"]
my_tuple = ("A", "B", "C", "D")
my_dict = {"A":"a", "B":"b", "C":"c", "D":"d"}
my_set = {'A', 'B', 'C', 'D'}

print("The type is : ",type(str_list))
print("The type is : ",type(age))
print("The type is : ",type(pi))
print("The type is : ",type(c_num))
print("The type is : ",type(my_list))
print("The type is : ",type(my_tuple))
print("The type is : ",type(my_dict))
print("The type is : ",type(my_set))

Saída:

The type is :<class 'str'>
The type is :<class 'int'>
The type is :<class 'float'>
The type is :<class 'complex'>
The type is :<class 'list'>
The type is :<class 'tuple'>
The type is :<class 'dict'>
The type is :<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 de objeto criado a partir do teste da classe.

class test:
    s = 'testing'

t = test()
print(type(t))

Saída:

<class '__main__.test'>

Exemplo: usando o nome, bases e dict em type()

O tipo também pode ser chamado usando a sintaxe: type(name, bases, dict).

Os três parâmetros passados ​​para type() ou seja, name, bases e dict são os componentes que constituem uma definição de classe. O nome representa o nome da classe, as bases são a classe base e dict é o dicionário de atributos da classe base.

Neste exemplo, usaremos todos os três parâmetros, ou seja, nome, bases e dict em type().

Exemplo:

class MyClass:
  x = 'Hello World'
  y = 50

t1 = type('NewClass', (MyClass,), 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 uma nova classe com atributos de classe base.

O que é isinstance() em Python?

Python isinstance faz parte de funções integradas do python. Python isinstance() recebe dois argumentos e retorna verdadeiro se o primeiro argumento for uma instância do classinfo fornecido como o segundo argumento.

Sintaxe isinstance()

isinstance(object, classtype)

Parâmetros Técnicos

  • object: Um objeto cuja instância você está comparando com o classtype. Ele retornará verdadeiro se o tipo corresponder a falso.
  • tipo de classe: um tipo ou classe ou uma tupla de tipos e/ou classes.

Valor de retorno

Ele retornará verdadeiro se o objeto for uma instância do tipo de classe e falso se não for.

Exemplos de isinstance()

Nesta seção, estudaremos vários exemplos para aprender isinstance()

Exemplo: isinstance() verificação de número inteiro

O código abaixo compara o valor inteiro 51 com o tipo int. Ele retornará verdadeiro se o tipo de 51 corresponder a int, caso contrário, será falso.

age = isinstance(51,int)
print("age is an integer:", age)

Saída:

age is an integer: True

Exemplo: isinstance() verificação flutuante

Neste exemplo vamos comparar o valor float com o tipo float, ou seja, o valor 3.14 será comparado com o tipo float.

pi = isinstance(3.14,float)
print("pi is a float:", pi)

Saída:

pi is a float: True

Exemplo: isinstance() verificação de string

message = isinstance("Hello World",str)
print("message is a string:", message)

Saída:

message is a string: True

Exemplo: isinstance() verificação de tupla

O código verifica uma tupla (1,2,3,4,5) com o tipo tupla. Ele retornará verdadeiro se a entrada fornecida for do tipo tupla e falso se não for.

my_tuple = isinstance((1,2,3,4,5),tuple)
print("my_tuple is a tuple:", my_tuple)

Saída:

my_tuple is a tuple: True

Exemplo: isinstance() Definir verificação

O código verifica um conjunto ({1,2,3,4,5}, com o tipo set. Ele retornará verdadeiro se a entrada fornecida for do tipo definido e falso se não.

my_set = isinstance({1,2,3,4,5},set)
print("my_set is a set:", my_set)

Saída:

my_set is a set: True

Exemplo: verificação de lista isinstance()

O código verifica uma lista [1,2,3,4,5],com o tipo list. Ele retornará verdadeiro se a entrada fornecida for do tipo lista e falso se não for.

my_list = isinstance([1,2,3,4,5],list)
print("my_list is a list:", my_list)

Saída:

my_list is a list: True

Exemplo: isinstance() verificação de ditado

O código verifica se há um dict({“A”:”a”, “B”:”b”, “C”:”c”, “D”:”d”}, com o tipo dict. Ele retornará verdadeiro se a entrada fornecida é do tipo dict e false se não.

my_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"},dict)
print("my_dict is a dict:", my_dict)

Saída:

my_dict is a dict: True

Exemplo: teste isinstance() em uma classe

O código mostra a verificação de tipo da classe com isinstance() . O objeto da classe é comparado com o nome da classe dentro de isinstance(). Retorna verdadeiro se o objeto pertence à classe e falso caso contrário.

class MyClass:
    _message = "Hello World"

_class = MyClass()

print("_class is a instance of MyClass() : ", isinstance(_class,MyClass))

Saída:

_class is a instance of MyClass() True

Diferença entre type() e isinstance() em Python

modelo() isinstance ()
Python tem uma função integrada chamada type() que ajuda a encontrar o tipo de classe da variável fornecida como entrada. Python tem uma função interna chamada isinstance() que compara o valor com o tipo fornecido. Se o valor e o tipo fornecidos corresponderem, retornará true, caso contrário, false.
O valor de retorno é um objeto de tipo O valor de retorno é booleano, ou seja, verdadeiro ou falso.
class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(type(A()) == A)
print(type(B()) == A)

Saída:

True
False

No caso do tipo, a verificação da subclasse retorna falso.

class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(isinstance(A(), A))
print(isinstance(B(), A))

Saída:

True
True

isinstance() fornece um valor verdadeiro quando verificado com uma subclasse.

Resumo

  • Python tem uma função integrada chamada type() que ajuda a encontrar o tipo de classe da variável fornecida como entrada. Por exemplo, se a entrada for uma string, você obterá a saída como , para a lista, será , etc.
  • Para type(), você pode passar um único argumento, e o valor de retorno será o tipo de classe do argumento fornecido, por exemplo, type(object).
  • Também é possível passar três argumentos para type(), ou seja, type(name, bases, dict), nesse caso, ele retornará um novo objeto de tipo.
  • Python tem uma função interna chamada instance() que compara o valor com o tipo fornecido. Se o valor e o tipo fornecidos corresponderem, ele retornará true, caso contrário, false. Usando isinstance(), você pode testar string, float, int, list, tuple, dict, set, class, etc.
  • Usando o método isinstance(), você pode testar string, float, int, list, tuple, dict, set, class, etc.

Resuma esta postagem com: