You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中获取OOP对象特定属性及内部运行信息的方法咨询

查看Python对象内部信息的常用方法

你看到的默认打印内容是对象的__repr__方法返回的结果,如果类没有自定义这个方法,就只会输出类名+内存地址,没有实际业务属性信息。要获取更详细的内容可以用下面这些方法:

1. 查看对象所有属性和方法

  • 用Python内置的dir()函数,直接传入要查看的对象,就会返回该对象所有的属性、方法名列表:
print(dir(your_object))
  • 如果要过滤掉前后带下划线的内置魔法方法/属性,只看自定义内容,可以加简单过滤:
print([attr for attr in dir(your_object) if not attr.startswith('_')])

2. 直接查看对象的属性字典

  • 大部分自定义类的实例属性都会存在__dict__属性里,直接打印就能看到所有属性名和对应的取值,非常直观:
print(your_object.__dict__)
  • 如果类用了__slots__声明属性、没有__dict__,可以遍历__slots__来逐个取属性值。

3. 查看类/方法的源码和注释

  • 要了解方法的运行逻辑,可以用inspect模块的getsource方法直接获取源码:
import inspect
# 查看单个方法的源码
print(inspect.getsource(your_object.some_method))
# 查看类的完整源码
print(inspect.getsource(type(your_object)))
  • 如果只要看方法/类的注释说明,用__doc__属性即可:
print(your_object.some_method.__doc__)
print(type(your_object).__doc__)

4. 更友好的结构化打印

  • 用pprint模块代替普通的print,输出的内容会自动换行缩进,嵌套结构的可读性高很多:
from pprint import pprint
pprint(your_object.__dict__)
pprint(dir(your_object))
  • 如果是在Jupyter环境里,直接在单元格最后一行写变量名然后运行,不需要加print,Jupyter会自动用更友好的格式展示对象信息,部分库的对象还会自带格式化的预览效果。

内容的提问来源于stack exchange,提问作者egghead jr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 00:09:02