2012-01-25 19 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:那是因爲它是內置的。 –

相關問題