python dir()和vars()的区别

来源:互联网 发布:软件著作权税务备案 编辑:程序博客网 时间:2024/05/17 23:58

dir():默认打印当前模块的所有属性,如果传一个对象参数则打印当前对象的属性
vars():默认打印当前模块的所有属性,如果传一个对象参数则打印当前对象的属性
vars():函数以字典形式返回参数中每个成员的当前值,如果vars函数没有带参数,那么它会返回包含当前局部命名空间中所有成员的当前值的一个字典。

help(vars)
Help on built-in function vars in module builtin:
vars(…)
vars([object]) -> dictionary
Without arguments, equivalent to locals().
With an argument, equivalent to object.dict.

dir()和vars()的区别就是:dir()只打印属性,vars()则打印属性与属性的值。

view plain copya='abcdefg'  class B():      c='djfj'  print dir()  print vars()  print dir(B)  print vars(B)  

结果:
[‘B’, ‘builtins‘, ‘doc‘, ‘file‘, ‘name‘, ‘package‘, ‘a’]
{‘a’: ‘abcdefg’, ‘B’:

>>> class C(object):          f=2  >>> dir(C)  ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'f']  >>> vars(C)  dict_proxy({'__dict__': <attribute '__dict__' of 'C' objects>, '__module__': '__main__', '__weakref__': <attribute '__weakref__' of 'C' objects>, '__doc__': None, 'f': 2})  >>> C.__dict__  dict_proxy({'__dict__': <attribute '__dict__' of 'C' objects>, '__module__': '__main__', '__weakref__': <attribute '__weakref__' of 'C' objects>, '__doc__': None, 'f': 2})  >>> c=C()  >>> dir(c)  ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'f']  >>> vars(c)  {}  >>> c.__dict__  {}  >>>   

(完)

0 0
原创粉丝点击