有没有一种方法可以在Python控制台中查看模块的源代码?

31

如果我在 Python 控制台中,想要查看特定模块的工作原理,是否有一种简单的方法可以输出源代码?


这个问题没有意义。所有的Python模块都是作为源代码发布的。你可以轻松地阅读它们。它们作为源代码存储在文件系统中。你是否在寻找Python库方面遇到了困难?你不能打开第二个窗口吗? - S.Lott
1
问题是是否有一种从控制台内部轻松实现它的方法。inspect 模块正是我要找的。 - tehryan
投票重新开放,因为链接的重复问题询问的是一个函数而不是一个模块。答案是相同的,但是寻找这个问题的人不一定会问其他问题。 - Jim Hunziker
2
这个问题不是重复的。它询问Python控制台的功能,而不是代码检查。因此,Michał Marczyk对IPython控制台的回答是正确的。 - Lukas
3个回答

45

Python的inspect模块中有一些方法非常适用于这个目的:

import module
import inspect
src = inspect.getsource(module)

有时候不起作用。例如:请看这张截图:https://recolic.net/tmp/snap-0508-203529.png - recolic
@recolic 的链接已过期。 - L F
@LuisFelipe 我丢失了截图... 对此我很抱歉,请忽略我的评论。 - recolic
2
不适用于“内置”模块。 - cowlinator

9
使用IPython,您可以这样做:
In [1]: import pyparsing
In [2]: pyparsing.Word??

如果可能的话,源代码将被显示。我猜这一定是在幕后使用了 inspect,但添加了 ? / ?? 后的便利性真是太棒了。


1
也许试一试
print(open('mymodule.py').read())

?

看看file.read()

这将转储任何文件的内容。 - Kugel
6
要使此操作正常运行,您需要进入模块所在的目录。在我看来,这有点违背了初衷。 - KingMak
你可以使用__file__代替静态字符串。 - lux
__file__ 对于“内置”模块无效。 - cowlinator

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接