当前位置: 首页 > 后端技术 > Python

看看Pythonvars()内置函数

时间:2023-03-26 18:43:59 Python

0.偶尔看到一个奇怪的现象>>>x=1>>>a=var()>>>a['x']1这是什么操作??使用help(vars)后,我意识到...>>>help(vars)Helponbuilt-infunctionvarsinmodulebuiltins:vars(...)vars([object])->dictionary不带参数,相当于当地人()。带参数,相当于object.__dict__。如果不传入参数,则相当于locals()。哎,我还是觉得是语法糖。。。不知道locals()老手,可以先自己试试,然后写1.vars()开始。vars()函数返回参数对象对象的属性和属性值的字典对象。对象实际上调用了对象内部定义的__dict_。_属性可以试试:>>>vars(1)TypeError:vars()argumentmusthave__dict__attribute由于对象1没有__dict__属性,所以会报错。当然,如果参数为空,就相当于调用了locals()函数。我们做A测试:classxx:def__init__(self):self.__dict__={'':'Iamvariable__dict__'}接下来调用这个类:>>>a=xx()>>>vars(a){'':'我是变量__dict__'}没错,返回对象的__dict__属性是放在类的__dict__中的。有些内置数据类型没有__dict__属性(可以试试语句vars('我没有__dict__属性')2.不传入参数总结vars(),相当于调用locals().如果传入自定义类的对象,则返回该对象的__dict__属性,大多数自定义类都会隐式创建__dict__属性如果传入一些内置数据类型,会报错,因为它没有__dict__属性:TypeError:vars()argumentmusthave__dict__attribute