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)
  
Abrir en editor

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.
  
Abrir en editor

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))
  
Abrir en editor

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.
  
Abrir en editor

Ejercicio: Puedes utilizar

Puedes utilizar vars() para modificar los atributos de un objeto o módulo. Por ejemplo.

Ejemplo

    print(module_namespace)
  
Abrir en editor