如何将一个函数的Python代码打印到终端?

5

我有一个系统,经常对函数的内容进行实验,然后运行程序。由于我经常打开很多终端窗口,有时候不太清楚哪个版本的函数属于哪个终端窗口。

有没有一种方法可以将特定函数的源代码打印到终端上?


3
Python反射:我能使用它获取方法定义的源代码吗? - Hoopdady
3
使用 iPython,您可以输入 func?? 来获取任何类或函数的源代码。 - Lie Ryan
@Lie Ryan - 感谢您的建议。不幸的是,这是一个独立的程序,我不能在交互式 shell 中使用它。此外,由于我经常更改代码,我需要知道运行时的代码,而不是之前或之后的代码。因此,inspect.getsource() 函数正是我所需要的。但还是感谢您的建议! - kramer65
1个回答

5

好的。感谢在Stackoverflow上提供了类似问题的Hoopdady。为了给未来的读者提供解决方案,我需要使用inspect模块,并使用它的"getsource"方法,可以将一个方法或函数的源代码简单地打印到命令行。

import inspect
import mymodule
print inspect.getsource(mymodule.sayHello)

感谢Hoopdady!

虽然我通常会同意“inspect”是一个好答案,但我不同意你不能获取解释器中定义的对象的源代码。如果您使用“dill.source.getsource”,即使它们是交互式定义的,也可以获取函数和lambda的源代码。它还可以获取绑定或未绑定类方法和在curries中定义的函数的代码...但是,您可能无法编译该代码而不包含封闭对象的代码。请参阅:https://github.com/uqfoundation/dill - Mike McKerns

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