Función vars() de Python
Funciones incorporadas de Python3
vars()es una función incorporada de Python que se utiliza para devolver los__dict__atributos de un objeto.
vars()Devuelve un diccionario que contiene todos los atributos escribibles del objeto. Para objetos sin__dict____dict__, se lanzará una excepción TypeError.
Definición de términos: vars 是 variables(变量)的缩写。
Sintaxis básica y parámetros
Formato de sintaxis
vars(object)
Descripción de parámetros
- Parámetro object:
- Tipo: cualquier objeto
- Descripción: el objeto del que se obtienen los atributos.
Descripción de la función
- Valor de retorno: devuelve el
__dict__diccionario del objeto. - Nota: sin argumentos, es equivalente a locals()
locals()。
Ejemplo
Ejemplo 1: Ver los atributos de un objeto
Ejemplo
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Tom", 20)
# Ver el __dict__ del objeto
print(vars(p))
# Salida: {'name': 'Tom', 'age': 20}
# Acceder al diccionario
print(vars(p)["name"]) # Salida: Tom
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Tom", 20)
# Ver el __dict__ del objeto
print(vars(p))
# Salida: {'name': 'Tom', 'age': 20}
# Acceder al diccionario
print(vars(p)["name"]) # Salida: Tom
Resultado esperado de la ejecución:
{'name': 'Tom', 'age': 20}
Tom
Análisis del código:
- vars() devuelve el diccionario de atributos de instancia del objeto.
- Se puede acceder directamente a los atributos mediante el diccionario.
Ejemplo 2: __dict__ de módulos y clases
Ejemplo
# El __dict__ del módulo
import os
print(len(vars(os))) # Salida: número de atributos del módulo os
# El __dict__ de la clase (sin incluir atributos de instancia)
class MyClass:
class_attr = 100
def __init__(self):
self.instance_attr = 200
print(vars(MyClass))
# Salida: {'__module__': '__main__', 'class_attr': 100, '__init__': ...}
import os
print(len(vars(os))) # Salida: número de atributos del módulo os
# El __dict__ de la clase (sin incluir atributos de instancia)
class MyClass:
class_attr = 100
def __init__(self):
self.instance_attr = 200
print(vars(MyClass))
# Salida: {'__module__': '__main__', 'class_attr': 100, '__init__': ...}
Resultado de la ejecución:
vars() es muy útil para comprender la estructura de los objetos.
vars()Se utiliza a menudo para la depuración y el acceso dinámico a atributos.
Funciones incorporadas de Python3
Otras extensiones