Рубрики
Без рубрики

Python vars ()

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

Автор оригинала: Pankaj Kumar.

Функция Python vars () Возвращает атрибут __dict__ для модуля, класса, экземпляра или любого другого объекта с атрибутом __dict__. Таким образом, вывод функции vars () – это словарь.

Python vars ()

Синтаксис функции Python Vars ():

vars([object])
  • Если аргумент не предоставлен, vars () действует как Местные жители () функция.
  • Аргументы могут быть модулем, классом или экземпляром класса.
  • Если указанный аргумент не имеет атрибута __dict__, Типеррор Исключение брошено с сообщением ImportError: vars () Аргумент должен иметь __dict__ атрибут Отказ
  • Если мы обновляем значения словаря Object __dict__, то обновленное значение будет возвращено функцией vars ().

vars () класса и объекта

Допустим, у нас есть класс, определенный с некоторыми переменными классами и переменными экземпляра.

class Data:
    # class variables
    id = 0
    name = ''

    def __init__(self, i, n):
        self.id = i
        self.name = n
        # instance variable
        self.repr = 'Data[%s,%s]' % (i,n)

Давайте посмотрим функцию VARS (), когда предусмотрен экземпляр класса.

d = Data(1, 'Pankaj')

# vars of object
print(vars(d))

# update __dict__ and then call vars()
d.__dict__['id'] = 100
print(vars(d))

Выход:

{'id': 1, 'name': 'Pankaj', 'repr': 'Data[1,Pankaj]'}
{'id': 100, 'name': 'Pankaj', 'repr': 'Data[1,Pankaj]'}

Давайте посмотрим функцию VARS () функции с классом в качестве аргумента.

print(vars(Data))

Выход:

{'__module__': '__main__', 'id': 0, 'name': '', '__init__': , '__dict__': , '__weakref__': , '__doc__': None}

vars () с модулем

import math

print(vars(math))

Выход:

{'__name__': 'math', '__doc__': 'This module is always available.  It provides access to the\nmathematical functions defined by the C standard.', '__package__': '', '__loader__': <_frozen_importlib_external.ExtensionFileLoader object at 0x1085654a8>, '__spec__': ModuleSpec(name='math', loader=<_frozen_importlib_external.ExtensionFileLoader object at 0x1085654a8>, origin='/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload/math.cpython-37m-darwin.so'), 'acos': , 'acosh': , 'asin': , 'asinh': , 'atan': , 'atan2': , 'atanh': , 'ceil': , 'copysign': , 'cos': , 'cosh': , 'degrees': , 'erf': , 'erfc': , 'exp': , 'expm1': , 'fabs': , 'factorial': , 'floor': , 'fmod': , 'frexp': , 'fsum': , 'gamma': , 'gcd': , 'hypot': , 'isclose': , 'isfinite': , 'isinf': , 'isnan': , 'ldexp': , 'lgamma': , 'log': , 'log1p': , 'log10': , 'log2': , 'modf': , 'pow': , 'radians': , 'remainder': , 'sin': , 'sinh': , 'sqrt': , 'tan': , 'tanh': , 'trunc': , 'pi': 3.141592653589793, 'e': 2.718281828459045, 'tau': 6.283185307179586, 'inf': inf, 'nan': nan, '__file__': '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload/math.cpython-37m-darwin.so'}

vars () без аргументации

print(vars())

Выход:

{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x108508390>, '__spec__': None, '__annotations__': {}, '__builtins__': , '__file__': '/Users/pankaj/Documents/github/journaldev/Python-3/basic_examples/python_vars_function.py', '__cached__': None, 'Data': , 'd': <__main__.Data object at 0x108565048>, 'math': }

Ссылка: Официальная документация