Función vars() en Python
La función
vars()
en Python
es una función integrada que se utiliza para devolver el espacio de nombres local (un diccionario) de un objeto o el diccionario de atributos de un módulo. Esta función puede ser útil para inspeccionar y manipular los atributos y variables locales de un objeto o módulo en tiempo de ejecución.
Página de referencia: resume la firma y el uso de un método concreto. El valor está en el patrón: qué recibe, qué devuelve y en qué situación lo usarías.
Copia el ejemplo al editor, cámbiale los argumentos y comprueba la salida.
Sintaxis de la Función vars() en Python
La sintaxis general de la función
vars()
es la siguiente:
Ejemplo
vars([object])
Donde:
-
object(opcional): Es el objeto del cual deseas obtener el espacio de nombres local. Si no se proporciona, se asume el espacio de nombres local del contexto actual.
Aquí tienes una lección detallada sobre el uso de la función
vars()
:
Ejemplo de vars() en Python
Puedes utilizar
vars()
en Python para inspeccionar el espacio de nombres local de un objeto. Por ejemplo:
Ejemplo
class MiClase:
def __init__(self):
self.variable1 = 10
self.variable2 = "Hola"
objeto = MiClase()
namespace = vars(objeto)
print(namespace)
En este ejemplo,
vars(objeto)
devuelve un diccionario que contiene las variables y sus valores dentro del objeto
objeto
.
Ejemplo básico para módulos de vars()
También puedes usar
vars()
para inspeccionar el diccionario de atributos de un módulo. Por ejemplo:
Ejemplo
print(module_namespace)
print(module_namespace)
En este caso,
vars(math)
devuelve un diccionario que contiene los atributos definidos en el módulo
math
.
Modificación de atributos con vars()
Puedes utilizar
vars()
para modificar los atributos de un objeto o módulo. Por ejemplo:
Ejemplo
class MiClase:
def __init__(self):
self.variable = 10
objeto = MiClase()
namespace = vars(objeto)
# Modificar el valor de una variable
namespace['variable'] = 20
print(objeto.variable) # Esto imprimirá 20, ya que hemos modificado la variable a través del espacio de nombres.
Restricciones
Es importante tener en cuenta que
vars()
no está disponible para todos los objetos. Solo funciona con objetos que tienen un espacio de nombres local. Además, no puedes utilizar
vars()
para acceder a los atributos de objetos incorporados (built-in) o de tipos de datos inmutables, como enteros o cadenas.
En resumen, la función
vars()
es una herramienta útil para inspeccionar y modificar los atributos y variables locales de objetos y módulos en Python. Sin embargo, debes usarla con precaución, ya que puede permitir la manipulación de variables de manera directa y podría causar efectos no deseados si se utiliza de manera incorrecta.
Practica Función vars() en Python en el editor
Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.
Ejercicio: vars() de un objeto
Muestra el diccionario de atributos de una instancia con vars().
Ejemplo
class Persona:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
p = Persona("Elena", 28)
print(vars(p))
Ejercicio: También puedes usar
También puedes usar vars() para inspeccionar el diccionario de atributos de un módulo. Por ejemplo.
Ejemplo
class MiClase:
def __init__(self):
self.variable = 10
objeto = MiClase()
namespace = vars(objeto)
# Modificar el valor de una variable
namespace['variable'] = 20
print(objeto.variable) # Esto imprimirá 20, ya que hemos modificado la variable a través del espacio de nombres.
Ejercicio: Puedes utilizar
Puedes utilizar vars() para modificar los atributos de un objeto o módulo. Por ejemplo.