vars(object)
object
- объект PythonФункция 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>, # }