2012-01-25 21 views

回答

2

您可以使用inspect模块从Python标准库

import inspect 


inspect.getfile(some_func) 
+0

非常好!不知道这个。它似乎失败了更多的功能(如'struct.pack'),而不是仅仅咨询'sys.modules'。 –

+0

@MattiVirkkunen,'sys.modules [struct.pack .__ module __] .__ file__' raise'AttributeError:'module'object has no attribute'__file __''for me。看起来像没有办法处理内建的'sys.modules [struct.pack .__ module __]' - >'' – reclosedev

+0

我想它必须是一个版本或平台的区别。幸运的是,你不应该真的需要知道哪个文件内置来自反正。 –

2

这应该适用于大多数功能。它不适用于内置插件,但是您不会导入这些内容。

import sys 
sys.modules[somefunc.__module__].__file__ 
+0

不知道这是否与成员函数,例如:' '' .strip .__ module__'是'None'。 – NPE

+0

@aix:那是因为它是内置的。 –

相关问题