En Python, todo es un objeto. Las funciones y métodos nativos integrados sirven para inspeccionar, manipular y gestionar el comportamiento de cualquier objeto (números, cadenas, listas, clases personalizadas, etc.).
| Función | Descripción |
|---|---|
| type(objeto) | Devuelve el tipo o clase exacta del objeto. |
| id(objeto,clase) | Retorna el identificador único de memoria asignado al objeto. |
| dir(objeto) | Lista todos los atributos y métodos válidos que posee el objeto. |
| var(objeto) | Devuelve el atributo __dict__ del objeto, mostrando sus variables internas en formato de diccionario. |
| callable(objeto) | Verifica si el objeto se puede invocar como una función (devuelve True o False). |
| getattr(objeto,'nombre',defecto) | Obtiene un atributo nombrado desde un objeto; de la siguiente forma getattr(instancia, 'atributo') el cual es equivalente a instancia.atributo. Cuando un argumento predeterminado es dato, es es devuelto cuando el atributo no existe; sin eso, una excepción es lanzada en ese caso. |
| setattr(objeto,'nombre') | Establecer un atributo con nombre en un objeto; setattr(x,'y',v) es equivalente a x.y=v. |
| hasattr(objeto,'nombre') | Devuelve un tipo booleano cuando el objeto tiene un atributo con el nombre dado. (Esta hecho llamando a la función getattr(instancia, atributo) y capturar excepciones.) |
| delattr(objeto,'nombre') | Elimina un atributo con nombre en un objeto; delattr(x,'y') es equivalente a del x.y. |
| str(objeto) | Devuelve la representación en texto legible y amigable del objeto (orientado al usuario final). |
| repr(objeto) | Devuelve una representación textual formal y detallada del objeto (orientado a desarrolladores y depuración) |
| iter() | obtiene un iterador de un objeto. En la primera forma, el argumento debe proporcionar su propio iterador, o ser una secuencia. |
| next() | devuelve el próximo elemento desde un iterador. |
| hash() | Devuelve un valor hash de tipo entero para el objeto. |
| isinstance() | Permite corroborar si un objeto es una instancia de una clase. |
| issubclass() | Permite corroborar si un objeto es instancia de una subclase. |
class Persona:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
p = Persona('Carlos',30)
print(type(p)) #class '__main__.Persona'
print(isinstance(p,Persona)) #True
print(hasattr(p,'edad')) #True
nombre_usuario = getattr(p,'nombre')
print(nombre_usuario) #Carlos
setattr(p,'ciudad','Lima')
print(p.ciudad) #Lima
print(vars(p)) #{'nombre':'Carlos','edad':30,'ciudad':'Lima'}