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.