Функція vars() в Python

 2219

Функція vars() повертає атрибут __dict__ (відображення словника) вказаного об’єкта. Наприклад:

Результат:

{'__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()

Параметри функції vars()

Функція vars() приймає один параметр:

   object — може бути модулем, класом, екземпляром або будь-яким об’єктом, що має атрибут __dict__.

Значення, яке повертає функція vars()

Функція vars() повертає:

   атрибут __dict__ вказаного об’єкта;

   методи з локальної області видимості, коли не передано аргументи;

   помилку TypeError, якщо переданий об’єкт не має атрибуту __dict__.

Приклад №1: Функція vars() в Python

Результат:

{'__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__

Результат:

Traceback (most recent call last):
  File "<string>", line 4, in <module>
TypeError: vars() argument must have __dict__ attribute

Тут ми передали у функцію vars() рядок "Jones". Оскільки рядок не має атрибуту __dict__, ми отримали помилку TypeError.

Приклад №3: Функція vars() з користувацьким об’єктом

Результат:

{'apple': 5, 'banana': 10}

Тут ми використали функцію vars() з користувацьким об’єктом eat класу Fruit. У класі Fruit є дві змінні: apple та banana зі значеннями 5 та 10 відповідно. Завдяки функції vars() ми отримуємо вивід {'apple': 5, 'banana': 10} у вигляді словника.

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (3 оцінок, середня: 3,67 з 5)
Завантаження...

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *