Funciones de objeto

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.).

Funciones de objeto
FunciónDescripció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'}