如何将您在python交互式会话中编写的函数/类保存到文件中?具体来说,pydev / eclipse的交互式会话(在mac上)有没有办法做到这一点?
我刚开始学习python - 我很高兴使用解释器的交互式会话来测试和玩我编写的模块。但是,我发现自己在解释器中编写函数,我认为,将它保存到我的脚本文件中会很酷。我该怎么做?
我试过了:
import pickle
pickle.dump(my_function, open("output.p", "w"))
但它似乎更像是二进制序列化,或者至少我没有任何东西可以复制并粘贴到我的代码中......
有没有办法看到课程背后的代码&我在解释器中定义的函数?然后将它们从解释器中复制出来?
更新
好的,这是我到目前为止所学到的:
答案 0 :(得分:5)
在我看来,交互式编码会话的最佳环境必须是IPython。它基于并扩展了基本的Python解释器,具有很多魔力,包括历史。例如,您可以发出命令%logstart以将所有后续输入转储到文件中,该文件在成为脚本之前仍然需要进行编辑,但是您可以使用很多工具。
安装IPython时,请不要忘记pyreadline。
但是,一般情况下,最好在IDE中编写代码然后运行它。 IPython也有帮助。如果您编写并保存脚本,然后使用IPython“run”命令运行它,脚本的整个全局命名空间将可用于您的IPython会话中的检查。此外,您可以使用-d参数运行以立即在任何未处理的异常上触发pdb调试器。
如果你更像是一个直接的IDE和调试器类型的人,那么最简单,最好的轻量级环境必须是PyScripter。
答案 1 :(得分:2)
我认为答案是改变你的工作流程。
我所做的是在编辑器(emacs)中编写我的函数,然后按下组合键(Ctrl-c Ctrl-e
)将文本区域发送到(i)python解释器。
这样我可以保存我想要的功能,也可以在翻译中使用它。
Emacs是我如何做到的核心,但我确信必须有许多编辑器(vim,gedit等)和IDE的类似方法。
PS。在使用Python时,找到一个好的编辑器是至关重要的。编辑器必须能够轻松地向左右移动代码块,否则空白问题变得过于繁重。
我不喜欢在python解释器中输入代码块,因为它不允许我轻松地移动块。当你找到合适的编辑器时,你会更喜欢Python。
答案 2 :(得分:2)
答案 3 :(得分:0)
我认为无法做到。
Python可以使用inspect模块执行instrospection,但如果没有源文件,inspect.getsource函数将无法工作。