tipo() y isinstance() en Python con ejemplos

ยฟQuรฉ es el tipo() en Python?

Python tiene una funciรณn incorporada llamada type() que le ayuda a encontrar el tipo de clase de la variable dada como entrada. Por ejemplo, si la entrada es una cadena, obtendrรก la salida como , para la lista, serรก , etc.

Usando el comando type(), puede pasar un solo argumento y el valor de retorno serรก el tipo de clase del argumento dado, ejemplo: tipo(objeto).

Tambiรฉn es posible pasar tres argumentos a type(), es decir, type(name, bases, dict), en tal caso, le devolverรก un nuevo tipo de objeto.

Sintaxis para tipo()

type() se puede utilizar de dos maneras, como se muestra a continuaciรณn:

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

Parรกmetros: tipo (objeto)

  • objeto: este es un parรกmetro obligatorio. Si este es solo un parรกmetro pasado a type(), le devolverรก el tipo de parรกmetro.

Parรกmetros: tipo(nombre, bases, dict)

  • nombre: nombre de la clase.
  • bases: (opcional). Este es un parรกmetro opcional y es la clase base.
  • dictado: (opcional). Este es un parรกmetro opcional y es un espacio de nombres que tiene la definiciรณn de la clase.

Valor de retorno

Si el objeto es el รบnico parรกmetro pasado a type() entonces le devolverรก el tipo de objeto.

Si los parรกmetros pasados โ€‹โ€‹al tipo son un tipo (objeto, bases, dict), en tal caso, devolverรก un nuevo tipo de objeto.

Ejemplo de tipo()

En este ejemplo, tenemos un valor de cadena, un nรบmero, un valor de punto flotante, un nรบmero complejo, una lista, una tupla, un diccionario y un conjunto. Usaremos las variables con tipo para ver el resultado de cada una de ellas.

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))

Salida:

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'>

Ejemplo: uso de type() para objeto de clase.

Cuando verifica el objeto creado a partir de una clase usando type(), devuelve el tipo de clase junto con el nombre de la clase. En este ejemplo, crearemos una clase y verificaremos el tipo de objeto creado a partir de la prueba de clase.

class test:
    s = 'testing'

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

Salida:

<class '__main__.test'>

Ejemplo: usar el nombre, las bases y el dict en type()

El tipo tambiรฉn se puede llamar usando la sintaxis: tipo (nombre, bases, dict).

Los tres parรกmetros pasados โ€‹โ€‹a type() es decir, nombre, bases y dict son los componentes que componen una definiciรณn de clase. El nombre representa el nombre de la clase, las bases son la clase base y dict es el diccionario de atributos de la clase base.

En este ejemplo, vamos a utilizar los tres parรกmetros, es decir, nombre, bases y dict en tipo().

Ejemplo:

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

t1 = type('NewClass', (MyClass,), dict(x='Hello World', y=50))
print(type(t1))
print(vars(t1))

Salida:

<class 'type'>
{'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}

Cuando pasa los tres argumentos a type() , le ayuda a inicializar una nueva clase con atributos de clase base.

ยฟQuรฉ es isinstance() en Python?

Python esta instancia es parte de funciones integradas de Python. Python isinstance() toma dos argumentos y devuelve verdadero si el primer argumento es una instancia de classinfo proporcionada como segundo argumento.

Sintaxis es instancia()

isinstance(object, classtype)

Parรกmetros

  • objeto: un objeto cuya instancia se estรก comparando con el tipo de clase. Devolverรก verdadero si el tipo coincide; de โ€‹โ€‹lo contrario, falso.
  • tipo de clase: Un tipo o una clase o una tupla de tipos y/o clases.

Valor de retorno

Devolverรก verdadero si el objeto es una instancia de tipo de clase y falso en caso contrario.

Ejemplos de isinstancia()

En esta secciรณn, estudiaremos varios ejemplos para aprender isinstance()

Ejemplo: isinstance() verificaciรณn de enteros

El cรณdigo siguiente compara el valor entero 51 con el tipo int. Devolverรก verdadero si el tipo de 51 coincide con int; de lo contrario, devolverรก falso.

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

Salida:

age is an integer: True

Ejemplo: isinstance() comprobaciรณn flotante

En este ejemplo vamos a comparar el valor flotante con el tipo flotante, es decir, el valor 3.14 se compararรก con el tipo flotante.

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

Salida:

pi is a float: True

Ejemplo: isinstance() verificaciรณn de cadena

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

Salida:

message is a string: True

Ejemplo: isinstance() verificaciรณn de tuplas

El cรณdigo busca una tupla (1,2,3,4,5) con tipo tupla. Devolverรก verdadero si la entrada proporcionada es de tipo tupla y falso en caso contrario.

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

Salida:

my_tuple is a tuple: True

Ejemplo: isinstance() Establecer verificaciรณn

El cรณdigo busca un conjunto ({1,2,3,4,5}, con tipo conjunto. Devolverรก verdadero si la entrada proporcionada es de tipo conjunto y falso en caso contrario.

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

Salida:

my_set is a set: True

Ejemplo: verificaciรณn de lista isinstance()

El cรณdigo busca una lista [1,2,3,4,5], con lista de tipos. Devolverรก verdadero si la entrada proporcionada es del tipo lista y falso en caso contrario.

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

Salida:

my_list is a list: True

Ejemplo: verificaciรณn de dictado isinstance()

El cรณdigo busca un dict({โ€œAโ€:โ€aโ€, โ€œBโ€:โ€bโ€, โ€œCโ€:โ€cโ€, โ€œDโ€:โ€dโ€}, con tipo dict. Devolverรก verdadero si la entrada proporcionada es de tipo dict y falsa si no.

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

Salida:

my_dict is a dict: True

Ejemplo: prueba isinstance() en una clase

El cรณdigo muestra la comprobaciรณn de tipo de una clase con isinstance(). El objeto de la clase se compara con el nombre de la clase dentro de isinstance(). Devuelve verdadero si el objeto pertenece a la clase y falso en caso contrario.

class MyClass:
    _message = "Hello World"

_class = MyClass()

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

Salida:

_class is a instance of MyClass() True

Diferencia entre tipo() e isinstance() en Python

tipo() isinstance ()
Python tiene una funciรณn incorporada llamada type() que le ayuda a encontrar el tipo de clase de la variable dada como entrada. Python Tiene una funciรณn incorporada llamada isinstance() que compara el valor con el tipo dado. Si el valor y el tipo dados coinciden, devolverรก verdadero; de lo contrario, falso.
El valor de retorno es un tipo de objeto. El valor de retorno es booleano, es decir, verdadero o falso.
class A:
my_listA = [1,2,3]

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

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

Salida:

True
False

En el caso del tipo, la verificaciรณn de la subclase devuelve falso.

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

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

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

Salida:

True
True

isinstance() da un valor veraz cuando se verifica con una subclase.

Resumen

  • Python tiene una funciรณn incorporada llamada type() que le ayuda a encontrar el tipo de clase de la variable dada como entrada. Por ejemplo, si la entrada es una cadena, obtendrรก la salida como , para la lista, serรก , etc.
  • Para tipo(), puede pasar un รบnico argumento y el valor de retorno serรก el tipo de clase del argumento dado, por ejemplo, tipo(objeto).
  • Tambiรฉn es posible pasar tres argumentos a type(), es decir, type(name, bases, dict), en tal caso, le devolverรก un nuevo tipo de objeto.
  • Python tiene una funciรณn incorporada llamada instance() que compara el valor con el tipo dado. Si el valor y el tipo dados coinciden, devolverรก verdadero; de lo contrario, falso. Con isinstance(), puede probar cadenas, puntos flotantes, enteros, listas, tuplas, diccionarios, conjuntos, clases, etc.
  • Usando el mรฉtodo isinstance(), puede probar cadenas, flotantes, int, listas, tuplas, dict, conjuntos, clases, etc.

Resumir este post con: