Python - Librería Types
#1. Comprobar si un objeto es una instancia de una clase:
import types
class MiClase:
pass
objeto = MiClase()
print(isinstance(objeto, types.InstanceType))
#2. Comprobar si un objeto es una función:
import types
def mi_funcion():
pass
print(isinstance(mi_funcion, types.FunctionType))
#3. Comprobar si un objeto es un método:
import types
class MiClase:
def mi_metodo(self):
pass
objeto = MiClase()
print(isinstance(objeto.mi_metodo, types.MethodType))
#4. Comprobar si un objeto es una clase:
import types
class MiClase:
pass
print(isinstance(MiClase, types.ClassType))
#5. Comprobar si un objeto es un módulo:
import types
import math
print(isinstance(math, types.ModuleType))
#6. Comprobar si un objeto es un generador:
import types
def mi_generador():
yield 1
yield 2
yield 3
objeto = mi_generador()
print(isinstance(objeto, types.GeneratorType))
#7. Comprobar si un objeto es un código compilado:
import types
def mi_funcion():
pass
codigo_compilado = mi_funcion.__code__
print(isinstance(codigo_compilado, types.CodeType))
#8. Comprobar si un objeto es una traza de pila:
import types
import traceback
try:
raise Exception("Error")
except:
traza_de_pila = traceback.extract_stack()
print(isinstance(traza_de_pila, types.TracebackType))
#9. Comprobar si un objeto es un marco de pila:
import types
import traceback
def mi_funcion():
traza_de_pila = traceback.extract_stack()
marco_de_pila = traza_de_pila[-2]
return marco_de_pila
print(isinstance(mi_funcion(), types.FrameType))
#10. Comprobar si un objeto es un diccionario de variables locales:
import types
def mi_funcion():
variable_local = "Hola"
print(isinstance(locals(), types.DictionaryType))
mi_funcion()
#11. Comprobar si un objeto es un diccionario de variables globales:
import types
variable_global = "Hola"
print(isinstance(globals(), types.DictionaryType))
#12. Comprobar si un objeto es un diccionario de variables de clase:
import types
class MiClase:
variable_de_clase = "Hola"
print(isinstance(MiClase.__dict__, types.DictionaryType))
#13. Comprobar si un objeto es un diccionario de variables de instancia:
import types
class MiClase:
def __init__(self):
self.variable_de_instancia = "Hola"
objeto = MiClase()
print(isinstance(objeto.__dict__, types.DictionaryType))
#14. Comprobar si un objeto es un diccionario de métodos:
import types
class MiClase:
def mi_metodo(self):
pass
print(isinstance(MiClase.__dict__, types.DictionaryType))
#15. Comprobar si un objeto es un diccionario de funciones:
import types
def mi_funcion():
pass
print(isinstance(mi_funcion.__globals__, types.DictionaryType))
#16. Comprobar si un objeto es un diccionario de módulos:
import types
import math
print(isinstance(math.__dict__, types.DictionaryType))
#17. Comprobar si un objeto es un diccionario de excepciones:
import types
print(isinstance(Exception.__dict__, types.DictionaryType))
#18. Comprobar si un objeto es un diccionario de tipos:
import types
class MiClase:
pass
print(isinstance(MiClase.__dict__, types.DictionaryType))