python vars name报错_简单瞅瞅Python vars()内置函数的实现

0.偶然间看到一个奇怪的现象

>>> x = 1

>>> a = var()

>>> a['x']

1

这是啥操作??用help(vars)之后,我才知道......

>>> help(vars)

Help on built-in function vars in module builtins:

vars(...)

vars([object]) -> dictionary

Without arguments, equivalent to locals().

With an argument, equivalent to object.__dict__.

如果,没传入参数就将相当于locals(),嗨,我还以为什么语法糖呢......

不知道locals()的老铁们,可以先自己试一试,之后会写

1.vars()走起

vars() 函数返回参数对象object的属性和属性值的字典对象

实际上调用了对象内部定义的__dict__属性

可以试试:

>>> vars(1)

TypeError: vars() argument must have __dict__ attribute

由于1这个对象没有__dict__ 属性,所以报错

当然,如果参数为空则相当于调用locals()函数

我们做个试验:

class xx:

def __init__(self):

self.__dict__

你可能感兴趣的:(python,vars,name报错)