Сообщить об ошибке.

Функция vars() в Python, словарь переменных объекта

Возвращает словарь пространства имен объекта

Синтаксис:

vars(object)

Параметры:

  • object - объект Python

Возвращаемое значение:

  • атрибут dict объекта

Описание:

Функция vars() вернет атрибут __dict__ - словарь пространства имен для модуля, класса, экземпляра или любого другого объекта с атрибутом __dict__.

Такие объекты, как модули и экземпляры классов, имеют обновляемый __dict__ атрибут, однако другие объекты могут иметь ограничения для записи своих атрибутов dict, например классы, которые используют types.MappingProxyType для предотвращения прямого обновления словаря.

Без аргумента vars() действует как встроенная функция locals(). Обратите внимание, что словарь переменных локальной области видимости полезен только для чтения, поскольку обновление словаря локальной области видимости игнорируются интерпретатором.

Изменено в Python 3.13: семантика пространства имен locals по умолчанию была скорректирована, как описано для встроенной функции locals().

Если объект указан, но у него нет атрибута __dict__, то возникает исключение TypeError (например, если его класс определяет атрибут __slots__).

Примеры получения словаря пространства имен, используемых объектом.

>>> vars()
# {
# '__name__': '__main__', 
# '__doc__': None, 
# '__package__': None, 
# '__loader__': <class '_frozen_importlib.BuiltinImporter'>, 
# '__spec__': None, 
# '__annotations__': {}, 
# '__builtins__': <module 'builtins' (built-in)>
# }


class MyObj:
    name = 'Chuck Norris'
    phone = '+666111000'
    country = 'Norway'

x = vars(MyObj)
print(x)
# {
# '__module__': '__main__', 
# '__doc__': None
# 'name': 'Chuck Norris', 
# 'phone': '+666111000', 
# 'country': 'Norway', 
# '__dict__': <attribute '__dict__' of 'MyObj' objects>, 
# '__weakref__': <attribute '__weakref__' of 'MyObj' objects>, 
# }