vars()
Функция vars() возвращает словарь __dict__ объекта — модуля,
класса или экземпляра. Без аргументов работает как locals() и
возвращает локальные переменные текущей области видимости. Удобна для
интроспекции и сериализации простых объектов.
Сигнатура
vars()
vars(object)
Параметры:
object— модуль, класс или экземпляр со словарём__dict__.
Возвращает: словарь атрибутов или locals() без аргументов.
Примеры
Атрибуты экземпляра:
class Robot:
def __init__(self, name, speed):
self.name = name
self.speed = speed
r = Robot("Phobo", 120)
print(vars(r))
{'name': 'Phobo', 'speed': 120}
Изменение через vars() влияет на сам объект:
class Box:
pass
b = Box()
vars(b)["color"] = "red"
print(b.color)
red
Атрибуты класса (методы и переменные):
class Counter:
step = 1
def inc(self):
pass
for name in vars(Counter):
if not name.startswith("_"):
print(name)
step
inc
Без аргументов — текущая область видимости:
def demo():
a = 10
b = "ok"
print(vars())
demo()
{'a': 10, 'b': 'ok'}
Простая сериализация объекта в словарь:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
import json
print(json.dumps(vars(Point(3, 4))))
{"x": 3, "y": 4}
См. также
Примечание
Описание основано на официальной документации Python (docs.python.org), распространяемой под лицензией PSF License v2. © Python Software Foundation.