Python 的 dir() 函数用于查看对象的属性和方法列表,其核心功能如下:
基础用法
查看当前作用域的所有名称
print(dir()) 输出: ['__annotations__', '__builtins__', ...]
查看对象的属性和方法
import math
print(dir(math)) 输出: ['__doc__', 'sqrt', 'sin', ...]
关键特性
无参调用
返回当前作用域的所有变量、函数和模块名称(按字母排序)[3]。-
对象分析
传入对象时返回其可用属性/方法(包括继承成员)[1]:class MyClass: def __init__(self): self.value = 42 def show(self): pass print(dir(MyClass())) 输出: ['__class__', 'show', 'value', ...] -
动态更新
对象属性变化后结果实时更新[3]:obj = MyClass() print(dir(obj)) 不含 'new_attr' obj.new_attr = True print(dir(obj)) 新增 'new_attr'
使用场景
- 调试时快速检查对象结构
- 动态探索模块功能(如
dir(pandas)) - 与
getattr()/setattr()配合实现反射
⚠️ 注意:结果包含魔术方法(如
__init__),实际使用建议结合help()查看详细文档。