tipo() y isinstance() en Python con ejemplos

⚡ Resumen inteligente

Python `type()` e `isinstance()` son funciones integradas para comprobar la clase de un objeto. `type()` devuelve el tipo exacto, mientras que `isinstance()` comprueba si un objeto pertenece a una clase o a una tupla de clases. Ambas se muestran aquí con ejemplos.

  • 🔍 tipo(): Devuelve la clase exacta de un objeto, como str, int o list.
  • isinstance(): Comprueba si un objeto es una instancia de una clase determinada y devuelve Verdadero o Falso.
  • 🧩 Tipo de tres argumentos(): type(name, bases, dict) crea dinámicamente un objeto de clase completamente nuevo.
  • ???? Subclases: isinstance() devuelve True para las subclases; type() comprueba solo la clase exacta.
  • 🎯 Casos de uso: Validar los tipos de entrada, depurar variables y ramificar la lógica según el tipo de objeto.
  • 🤖 Ayuda de IA: Las herramientas de IA como Copilot generan comprobaciones de tipo() e isinstance() bajo demanda.

tipo() y isinstance() en Python

¿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.

Preguntas Frecuentes

type() es una función integrada que devuelve la clase de un objeto. Si se le pasa un argumento, devuelve el tipo de objeto; si se le pasan tres (nombre, bases, diccionario), crea una nueva clase.

La función isinstance(object, classtype) comprueba si un objeto es una instancia de una clase o una tupla de clases. Devuelve True si el tipo coincide y False en caso contrario.

`type()` devuelve la clase exacta de un objeto e ignora la herencia, mientras que `isinstance()` devuelve `True` también para las subclases. Utilice `isinstance()` para realizar comprobaciones de tipo flexibles que respeten las jerarquías de clases.

Sí. Llamar a type(name, bases, dict) con tres argumentos devuelve un nuevo objeto de clase dinámicamente. name es el nombre de la clase, bases es una tupla de padres y dict contiene los atributos.

Sí. La función isinstance() devuelve True cuando un objeto es una instancia de una clase o de alguna de sus subclases. Esto la hace más segura que type() para comprobar tipos heredados.

Los asistentes de IA como GitHub Copilot autocompletan las comprobaciones type() e isinstance(), generan comprobaciones de validación y sugieren el enfoque correcto para un objeto dado mientras escribes. Python.

Sí. Las herramientas con inteligencia artificial pueden automatizar la inserción de comprobaciones isinstance(), detectar entradas no verificadas y refactorizar las comparaciones type() frágiles en comprobaciones isinstance() más seguras en todo el código.

type() devuelve el objeto de clase para el valor: list para una lista y dict para un diccionario. Al imprimirlo, se muestra un formato como class list o class dict.

Resumir este post con: