Python:查找函数的哪个版本I';我在用

Python:查找函数的哪个版本I';我在用,python,introspection,import,Python,Introspection,Import,我对我的导入有点困惑,我想看看我使用的是哪个版本的函数。是否有某种方法可以获取实现或类保存文件名的位置?这应该适用于大多数函数。它对内置程序不起作用,但无论如何都不能导入这些程序 import sys sys.modules[somefunc.__module__].__file__ 您可以使用标准Python库中的模块 import inspect inspect.getfile(some_func) 不确定这是否适用于成员函数:例如,'.strip.\uuuu模块\uuu是None@

我对我的导入有点困惑,我想看看我使用的是哪个版本的函数。是否有某种方法可以获取实现或类保存文件名的位置?

这应该适用于大多数函数。它对内置程序不起作用,但无论如何都不能导入这些程序

import sys
sys.modules[somefunc.__module__].__file__
您可以使用标准Python库中的模块

import inspect


inspect.getfile(some_func)

不确定这是否适用于成员函数:例如,
'.strip.\uuuu模块\uuu
None
@aix:这是因为它是内置的。非常好!我不知道这件事。它似乎在更多的功能上失败了(比如
struct.pack
),而不仅仅是咨询
sys.modules
。@MattiVirkkunen,
sys.modules[struct.pack.\uuuuuuuuuuu module.\uuuuuuuuu].\uuuuuuuuu文件
引发
AttributeError:“module”对象对我来说没有属性“\uuuu文件”
。看起来没有办法处理内置的系统模块[struct.pack.\uuuu module\uuuuu]->
我想这一定是版本或平台的不同。幸运的是,你根本不需要知道内置程序来自哪个文件。@MattiVirkkunen,我同意你的看法。顺便说一句,在Python 2.7.1 win32上进行了测试。