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.
