Python Función type()
Funciones integradas de Python
Descripción
La función type() devuelve el tipo del objeto si solo se le pasa el primer parámetro, y con tres parámetros devuelve un nuevo tipo de objeto.
Diferencia entre isinstance() y type():
type() no considera que una subclase sea un tipo de la clase padre, no tiene en cuenta la relación de herencia.
isinstance() sí considera que una subclase es un tipo de la clase padre, tiene en cuenta la relación de herencia.
Si desea determinar si dos tipos son iguales, se recomienda usar isinstance().
Sintaxis
La siguiente es la sintaxis del método type():
type(object) type(name, bases, dict)
Parámetros
- name -- nombre de la clase.
- bases -- tupla de clases base.
- dict -- diccionario, variables del espacio de nombres definidas dentro de la clase.
Valor de retorno
Con un parámetro devuelve el tipo del objeto; con tres parámetros devuelve un nuevo tipo de objeto.
Ejemplo
A continuación se muestra un ejemplo del uso de la función type():
# Ejemplo con un parámetro
>>> type(1)
<type 'int'>
>>> type('ejemplo')
<type 'str'>
>>> type([2])
<type 'list'>
>>> type({0:'zero'})
<type 'dict'>
>>> x = 1
>>> type( x ) == int # Determinar si los tipos son iguales
True
# Tres parámetros
>>> class X(object):
... a = 1
...
>>> X = type('X', (object,), dict(a=1)) # Crear un nuevo tipo X
>>> X
<class '__main__.X'>
Diferencia entre type() y isinstance():
class A:
pass
class B(A):
pass
isinstance(A(), A) # returns True
type(A()) == A # returns True
isinstance(B(), A) # returns True
type(B()) == A # returns False