Функція vars() повертає атрибут __dict__ (відображення словника) вказаного об’єкта. Наприклад:
|
1 2 |
# Повертаємо атрибут __dict__ об'єкта list print(vars(list)) |
Результат:
{'__new__': <built-in method __new__ of type object at 0x7f993b45bca0>, '__repr__': <slot wrapper '__repr__' of 'list' objects>, '__hash__': None, '__getattribute__': <slot wrapper '__getattribute__' of 'list' objects>, '__lt__': <slot wrapper '__lt__' of 'list' objects>, '__le__': <slot wrapper '__le__' of 'list' objects>, ...'}
Синтаксис функції vars()
|
1 |
vars(object) |
Параметри функції vars()
Функція vars() приймає один параметр:
object — може бути модулем, класом, екземпляром або будь-яким об’єктом, що має атрибут __dict__.
Значення, яке повертає функція vars()
Функція vars() повертає:
атрибут __dict__ вказаного об’єкта;
методи з локальної області видимості, коли не передано аргументи;
помилку TypeError, якщо переданий об’єкт не має атрибуту __dict__.
Приклад №1: Функція vars() в Python
|
1 2 3 4 5 |
# Функція vars() без вказування аргументу print(vars()) # Повертаємо __dict__ об'єкта dict print(vars(dict)) |
Результат:
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>}
{'__new__': <built-in method __new__ of type object at 0x7efece8de5c0>, '__repr__': <slot wrapper '__repr__' of 'dict' objects>, '__hash__': None, '__getattribute__': <slot wrapper '__getattribute__' of 'dict' objects>, '__lt__': <slot wrapper '__lt__' of 'dict' objects>, '__le__': <slot wrapper '__le__' of 'dict' objects>, '__eq__': <slot wrapper '__eq__' of 'dict' objects>, '__ne__': <slot wrapper '__ne__' of 'dict' objects>, ...}
Приклад №2: Функція vars() з аргументом без атрибута __dict__
|
1 2 3 4 |
string = "Jones" # Функція vars() з рядком print(vars(string)) |
Результат:
Traceback (most recent call last):
File "<string>", line 4, in <module>
TypeError: vars() argument must have __dict__ attribute
Тут ми передали у функцію vars() рядок "Jones". Оскільки рядок не має атрибуту __dict__, ми отримали помилку TypeError.
Приклад №3: Функція vars() з користувацьким об’єктом
|
1 2 3 4 5 6 7 8 9 |
class Fruit: def __init__(self, apple = 5, banana = 10): self.apple = apple self.banana = banana eat = Fruit() # Повертаємо __dict__ об'єкта eat print(vars(eat)) |
Результат:
{'apple': 5, 'banana': 10}
Тут ми використали функцію vars() з користувацьким об’єктом eat класу Fruit. У класі Fruit є дві змінні: apple та banana зі значеннями 5 та 10 відповідно. Завдяки функції vars() ми отримуємо вивід {'apple': 5, 'banana': 10} у вигляді словника.


(3 оцінок, середня: 3,67 з 5)