如何查询Python中自定义method所属的定义模块或类?
Python查询非内置函数/方法所属模块及类的方法
以下是几种通用的查询方式:
- 方法1:调用函数/方法的内置属性
所有Python可调用对象默认自带__module__和__qualname__属性,直接访问即可:__module__:返回函数/方法所属的模块名__qualname__:返回函数/方法的限定名,如果是类方法/实例方法,会自动带上所属类的名称
示例代码:
# 假设要查询的函数为custom_func print(custom_func.__module__) print(custom_func.__qualname__) # 如果是绑定的实例方法,还可以通过以下方式直接拿到所属类 # 假设实例方法为obj.method print(obj.method.__self__.__class__) - 方法2:使用标准库
inspect模块
该模块提供了更丰富的自检能力,除了所属模块外,还能直接查询源码文件路径、源码内容等:
示例代码:import inspect # 获取所属模块对象 print(inspect.getmodule(custom_func)) # 获取源码文件的绝对路径 print(inspect.getsourcefile(custom_func)) # 直接打印完整源码(仅当能获取到源码时可用) print(inspect.getsource(custom_func)) - 方法3:调用
help()函数
直接在交互式环境中执行help(你的函数名),输出内容的开头会明确标注该可调用对象所属的模块、类信息,同时还会展示它的参数说明、用法注释等内容。
内容的提问来源于stack exchange,提问作者smwikipedia
相关产品推荐
相关产品推荐

