Функция vars()
в Python возвращает атрибут __dict__
который содержит все атрибуты объекта, которые могут быть доступны для записи, объектом может быть экземпляр, класс, модуль.
Синтаксис:
vars([obj])
- Если аргумент для функции
vars()
не указан, то функция работает какlocals()
. - Аргументы могут быть: модулем, экземпляром класса, классом.
- Если же аргумент не имеет атрибута
__dict__,
то мы получим исключениеTypeError
.
Пример:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person('Vladislav', 23)
print(vars(Person))
print(vars(p))
Результаты:
>>> {'__module__': '__main__', '__init__': <function Person.__init__ at 0x000002834081FD00>, '__dict__': <attribute '__dict__' of 'Person' objects>, '__weakref__': <attribute '__weakref__' of 'Person' objects>, '__doc__': None}
>>> {'name': 'Vladislav', 'age': 23}
Использование vars() без аргументов:
print(vars())
Результат:
>>> {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001CBC6EE49A0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'C:\\Users\\Razilator\\Desktop\\Projects\\Coding\\articles\\vars\\main.py', '__cached__': None, 'Person': <class '__main__.Person'>, 'p': <__main__.Person object at 0x000001CBC6DC7D60>}