Python vars() 函数
vars() 是 Python 中用于返回对象的 __dict__ 属性的内置函数。
vars() 返回一个包含对象所有可写属性的字典。对于没有 __dict__ 的对象,会抛出 TypeError 异常。
单词释义: vars 是 variables(变量)的缩写。
基本语法与参数
语法格式
vars(object)
参数说明
- 参数 object:
- 类型: 任意对象
- 描述: 要获取属性的对象。
函数说明
- 返回值: 返回对象的
__dict__字典。 - 注意: 不带参数时等同于
locals()。
实例
示例 1:查看对象的属性
实例
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Tom", 20)
# 查看对象的 __dict__
print(vars(p))
# 输出: {'name': 'Tom', 'age': 20}
# 访问字典
print(vars(p)["name"]) # 输出: Tom
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Tom", 20)
# 查看对象的 __dict__
print(vars(p))
# 输出: {'name': 'Tom', 'age': 20}
# 访问字典
print(vars(p)["name"]) # 输出: Tom
运行结果预期:
{'name': 'Tom', 'age': 20}
Tom
代码解析:
- vars() 返回对象的实例属性字典。
- 可以直接通过字典访问属性。
示例 2:模块和类的 __dict__
实例
# 模块的 __dict__
import os
print(len(vars(os))) # 输出: os 模块的属性数量
# 类的 __dict__(不包括实例属性)
class MyClass:
class_attr = 100
def __init__(self):
self.instance_attr = 200
print(vars(MyClass))
# 输出: {'__module__': '__main__', 'class_attr': 100, '__init__': ...}
import os
print(len(vars(os))) # 输出: os 模块的属性数量
# 类的 __dict__(不包括实例属性)
class MyClass:
class_attr = 100
def __init__(self):
self.instance_attr = 200
print(vars(MyClass))
# 输出: {'__module__': '__main__', 'class_attr': 100, '__init__': ...}
运行结果:
vars() 对于理解对象结构很有帮助。
vars() 常用于调试和动态属性访问。
Python3 内置函数
点我分享笔记