|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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}
复制代码 |
|