给定一个Python类,我如何在我的代码中检查和查找定义它的位置?

时间:2009-10-14 19:46:33

标签: python

我正在构建一个调试工具。

IPython让我做像

这样的事情
MyCls??

它会告诉我来源。

4 个答案:

答案 0 :(得分:8)

sys.modules[MyCls.__module__].__file__

inspect.getsourcefile(MyCls)

对于您可能觉得有用的各种对象,还有更多__xxx__ attributes

答案 1 :(得分:4)

以下是Python的许多元信息功能的非常好的概述:

http://www.ibm.com/developerworks/library/l-pyint.html

答案 2 :(得分:2)

inspect模块包含您需要的一切。

答案 3 :(得分:2)

如果您只想查看来源,inspect.getsource是一种非常直接的方式;对于更高级的用途(获取源文件,行号等),请参阅inspect之前的同一URL中记录的getsource中的其他函数。请注意,如果source不可用,每个此类函数都会引发异常,因此请确保在调用它时位于try / except块内,并根据您的情况处理异常。 (另外,正如我可能希望的那样,你需要在你想要调用import inspect功能的模块中inspect