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