función tipo() en Python

type()El método devuelve el tipo de clase del argumento (objeto) pasado como parámetro. La función type() se usa principalmente para fines de depuración.

Se pueden pasar dos tipos diferentes de argumentos a la función type(), uno y tres argumentos. type(obj)Si se pasa un solo argumento , devuelve el tipo de objeto dado. Si se pasan tres argumentos type(name, bases, dict), devuelve un nuevo tipo de objeto.

Sintaxis:

type(object)
type(name, bases, dict)

Parámetros:

name : nombre de la clase, que luego corresponde al atributo __name__ de la clase.
bases : tupla de clases de las que deriva la clase actual. Posteriormente corresponde al atributo __bases__.
dict : un diccionario que contiene los espacios de nombres para la clase. Posteriormente corresponde al atributo __dict__.

Tipo de retorno:

returns a new type class or essentially a metaclass.

Código #1:

# Python3 simple code to explain
# the type() function
print(type([]) is list)
  
print(type([]) is not list)
  
print(type(()) is tuple)
  
print(type({}) is dict)
  
print(type({}) is not list)

Producción :

True
False
True
True
True

Código #2:

# Python3 code to explain
# the type() function
  
# Class of type dict
class DictType:
    DictNumber = {1:'John', 2:'Wick',
                  3:'Barry', 4:'Allen'}
      
    # Will print the object type
    # of existing class
    print(type(DictNumber))
  
# Class of type list    
class ListType:
    ListNumber = [1, 2, 3, 4, 5]
      
    # Will print the object type
    # of existing class
    print(type(ListNumber))
  
# Class of type tuple    
class TupleType:
    TupleNumber = ('Geeks', 'for', 'geeks')
      
    # Will print the object type
    # of existing class
    print(type(TupleNumber))
  
# Creating object of each class    
d = DictType()
l = ListType()
t = TupleType()

Producción :

<class 'dict'>
<class 'list'>
<class 'tuple'>

Código #3:

# Python3 code to explain
# the type() function
  
# Class of type dict
class DictType:
    DictNumber = {1:'John', 2:'Wick', 3:'Barry', 4:'Allen'}
      
# Class of type list    
class ListType:
    ListNumber = [1, 2, 3, 4, 5]
  
# Creating object of each class   
d = DictType()
l = ListType()
  
# Will print accordingly whether both
# the objects are of same type or not  
if type(d) is not type(l):
    print("Both class have different object type.")
else:
    print("Same Object type")

Producción :

Both class have different object type.

 
Código #4: Uso detype(name, bases, dict)

# Python3 program to demonstrate
# type(name, bases, dict)
  
# New class(has no base) class with the
# dynamic class initialization of type()
new = type('New', (object, ),
      dict(var1 ='GeeksforGeeks', b = 2009))
  
# Print type() which returns class 'type'
print(type(new))
print(vars(new))
  
  
# Base class, incorporated
# in our new class
class test:
    a = "Geeksforgeeks"
    b = 2009
  
# Dynamically initialize Newer class
# It will derive from the base class test
newer = type('Newer', (test, ),
        dict(a ='Geeks', b = 2018))
          
print(type(newer))
print(vars(newer))

Producción :

{'__module__': '__main__', 'var1': 'GeeksforGeeks', '__weakref__': , 'b': 2009, '__dict__': , '__doc__': None}

{'b': 2018, '__doc__': None, '__module__': '__main__', 'a': 'Geeks'}

 
Aplicaciones:

  • La función type() se utiliza básicamente para fines de depuración. Cuando se utilizan otras funciones de string como .upper(), .lower(), .split() con texto extraído de un rastreador web, es posible que no funcione porque pueden ser de un tipo diferente que no admite funciones de string. Y como resultado, seguirá arrojando errores, que son muy difíciles de depurar [Considere el error como: GeneratorType no tiene atributo lower()] . La función type() se puede usar en ese punto para determinar el tipo de texto extraído y luego cambiarlo a otras formas de string antes de usar funciones de string o cualquier otra operación en él.
  • type() con tres argumentos se puede usar para inicializar dinámicamente clases o clases existentes con atributos. También se utiliza para registrar tablas de bases de datos con SQL.

Publicación traducida automáticamente

Artículo escrito por retr0 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *