【发布时间】:2012-01-25 17:01:00
【问题描述】:
我对我的导入有点困惑,我想看看我正在使用哪个版本的函数。有什么方法可以获取实现或保存它的类的文件名吗?
【问题讨论】:
标签: python introspection import
我对我的导入有点困惑,我想看看我正在使用哪个版本的函数。有什么方法可以获取实现或保存它的类的文件名吗?
【问题讨论】:
标签: python introspection import
您可以使用标准 Python 库中的 inspect 模块
import inspect
inspect.getfile(some_func)
【讨论】:
struct.pack)上失败,而不仅仅是咨询sys.modules。
sys.modules[struct.pack.__module__].__file__ 为我提高 AttributeError: 'module' object has no attribute '__file__'。看起来没有办法处理内置 sys.modules[struct.pack.__module__] -> <module '_struct' (built-in)>
这应该适用于大多数功能。它不适用于内置插件,但无论如何您都不会导入它们。
import sys
sys.modules[somefunc.__module__].__file__
【讨论】:
''.strip.__module__ 是 None。