马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 一个账号 于 2020-3-15 22:12 编辑
Python vars() 函数
语法
vars([object]) -> dictionary
参数
返回值
1. 当函数不接收参数时,其功能和 locals() 函数一样,返回当前作用域内的局部变量。
2. 当函数接收一个参数时,参数可以是模块、类、类实例,或者定义了 __dict__ 属性的对象。
vars([object]) 就是返回对象 __dict__ 的内容,无论是类对象还是实例对象,vars([object]) == object.__dict__
当然,参数对象需要有一个__dict__ 属性。同样的,内建对象没有 __dict__ 属性会报TypeError错误。
例子
>>> vars()
{'__name__': '__main__', '__doc__': None, '__package__': None, ...
>>> locals()
{'__name__': '__main__', '__doc__': None, '__package__': None, ...
>>> list1 = vars()
>>> list2 = locals()
>>> list1 == list2
True
>>> import time
>>> vars(time)
{'__name__': 'time', '__doc__': 'This module provides various ...
>>> def test():
pass
>>> vars(test)
{}
>>> test.__dict__
{}
>>> class Test:
pass
>>> Test.__dict__
mappingproxy({'__module__': '__main__', '__dict__': <attribute '__dict__' of 'Test' objects>, ...
>>> vars(Test)
mappingproxy({'__module__': '__main__', '__dict__': <attribute '__dict__' of 'Test' objects>, ...
>>> a = A()
Traceback (most recent call last):
File "<pyshell#36>", line 1, in <module>
a = A()
NameError: name 'A' is not defined
>>> a = Test()
>>> a.__dict__
{}
>>> vars(a)
{}
>>> a.var = 3
>>> a.__dict__
{'var': 3}
>>> vars(a)
{'var': 3}
|