Python vars() 函数
vars()
方法返回给定对象的 __dict__
(字典映射)属性。
示例
# 返回 list 的 __dict__
print(vars(list))
# 输出:
# {'__repr__': <slot wrapper '__repr__' of 'list' objects>, '__hash__': None, '__getattribute__': <slot wrapper '__getattribute__' of 'list' objects>, ….}
vars() 语法
vars()
方法的语法是:
vars(object)
vars() 参数
vars()
方法接受一个参数:
- object - 可以是模块、类、实例或任何具有
__dict__
属性的对象
vars() 返回值
vars()
方法返回:
- 给定对象的
__dict__
属性。 - 当没有传递参数时,返回本地作用域中的方法
- 如果传递的对象没有
__dict__
属性,则返回 TypeError
示例:Python vars()
# 没有参数的 vars()
print (vars())
# 返回字典对象的 __dict__
print(vars(dict))
输出:
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>}
{'__repr__': <slot wrapper '__repr__' of 'dict' objects>, '__hash__': None, '__getattribute__': <slot wrapper '__getattribute__' of 'dict' objects> ….}
示例 2:没有 dict 属性参数的 vars()
string = "Jones"
# 字符串的 vars()
print(vars(string))
输出:
TypeError: vars() 的参数必须具有 __dict__ 属性
在上面的示例中,我们向 vars()
方法传递了字符串 "Jones"
。
由于字符串没有 __dict__
属性,我们得到了一个 TypeError。
示例 3:自定义对象的 vars()
class Fruit:
def __init__(self, apple = 5, banana = 10):
self.apple = apple
self.banana = banana
eat = Fruit()
# 返回 eat 对象的 __dict__
print(vars(eat))