vars([object])
返回__dict__屬性的值。
當不傳入參數時,和locals()等效。
當函數接收一個參數時,參數可以是模塊、類、類實例,或者定義了__dict__屬性的對象。
>>> vars(A)
mappingproxy({'__module__': '__main__', 'infoA': 'A', '__dict__': <attribute '__dict__' of 'A' objects>,
'__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None})
>>> class B:
... __dict__ = 'tom'
...
>>> b = B()
>>> b.__dict__
'tom'
>>> vars(b)
'tom'
拓展
模塊都有__dict__屬性。
這是包含模塊符號表的字典。
修改這個字典實際上會改變模塊的符號表,但直接賦值給__dict__屬性是不可能的(你可以寫m .__ dict __ ['a'] = 1,將ma定義為1,但是你不能寫m .__ dict__ = {})。
不建議直接修改__dict__。
模塊表示方法
#內置模塊
>>> json
<module 'json' from 'D:\\python\\python3.6\\lib\\json\\__init__.py'>
#非內置模塊
>>> sys
<module 'sys' (built-in)>