如何查看Python对象的属性与方法?以Telethon的event对象为例
Python动态对象的属性/方法查看实用方法
针对Python动态类型对象的属性、方法查找需求,以下是几种高效的实用方法,替代手动搜源码的低效方式:
1. 内置dir()函数
直接调用dir(obj)可以列出对象所有可用的属性和方法,包括继承自父类的成员。如果想过滤掉下划线开头的私有/特殊成员,可结合列表推导:
# 列出event对象的非私有属性/方法 print([attr for attr in dir(event) if not attr.startswith('_')])
2. 内置vars()函数
vars(obj)会返回对象实例的__dict__属性,包含该实例自定义的属性键值对(注意:部分内置类型或未定义__dict__的类无法使用):
print(vars(event))
3. inspect模块(更精细化查看)
Python标准库的inspect模块提供了更专业的对象 introspection 工具,能区分方法、属性、类成员等:
import inspect # 获取所有成员,区分属性和方法 for attr, value in inspect.getmembers(event): # 过滤掉私有成员 if not attr.startswith('_'): if inspect.ismethod(value): print(f"方法: {attr}") else: print(f"属性: {attr} = {value}") # 仅获取类的定义(不含实例属性) print(dir(type(event))) # 查看类的源码(如果库源码可访问) print(inspect.getsource(type(event)))
4. 交互式环境自动补全
在IPython、Jupyter Notebook或PyCharm等支持自动补全的环境中,输入event.后按<Tab>键,会直接弹出所有可用的属性和方法列表,这是最便捷的实时查看方式。
5. 查看文档字符串
很多库会为类或方法添加文档字符串,直接访问__doc__属性即可查看:
# 查看event对象所属类的文档 print(type(event).__doc__) # 查看某个具体方法的文档 print(event.some_method.__doc__)
这些方法都是Python运行时 introspection 的原生能力,无需依赖外部工具或源码搜索,适配绝大多数第三方库的动态对象查看需求。
内容的提问来源于stack exchange,提问作者user17596589
相关产品推荐
相关产品推荐

