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上进行了测试。