简单瞅瞅Python vars()内置函数的实现
发布时间:2020-12-17 17:44:23 所属栏目:Python 来源:网络整理
导读: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(). W
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__ = {'':'我是变量__dict__'} 接下来调用此类: >>> a = xx() >>> vars(a) {'': '我是变量__dict__'} 没错吧,返回的是该对象的__dict__属性 简单说一下__dict__: 类的静态函数、类函数、普通函数、全局变量以及一些内置的属性都是放在类的__dict__里 一些内置的数据类型是没有__dict__属性的(可以尝试下 vars('我没有__dict__属性')这个语句) 2.总结
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |