Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何保存/复制类&;功能I';你是用python解释器写的吗?_Python - Fatal编程技术网

如何保存/复制类&;功能I';你是用python解释器写的吗?

如何保存/复制类&;功能I';你是用python解释器写的吗?,python,Python,如何将在python交互会话中编写的函数/类保存到文件中?具体来说,pydev/eclipse的交互式会话(在mac上)中有没有一种方法可以做到这一点 我刚刚开始学习python——我很喜欢使用解释器的交互式会话来测试和玩我编写的模块。然而,我发现自己在解释器中编写函数,我认为,将其保存到脚本文件中会很酷。我该怎么做 我试过: import pickle pickle.dump(my_function, open("output.p", "w")) 但它看起来更像是二进制序列化,或者至少没有我

如何将在python交互会话中编写的函数/类保存到文件中?具体来说,pydev/eclipse的交互式会话(在mac上)中有没有一种方法可以做到这一点

我刚刚开始学习python——我很喜欢使用解释器的交互式会话来测试和玩我编写的模块。然而,我发现自己在解释器中编写函数,我认为,将其保存到脚本文件中会很酷。我该怎么做

我试过:

import pickle
pickle.dump(my_function, open("output.p", "w"))
但它看起来更像是二进制序列化,或者至少没有我可以复制并粘贴到代码中的东西

有没有办法查看我在解释器中定义的类和函数背后的代码?然后从口译员那里复制出来

更新:

好的,以下是我到目前为止学到的:

  • 我错过了最简单的一个——eclipse中PyDev的交互式会话允许您右键单击并保存会话。仍然必须删除>>>,但要完成任务
  • 很明显,这是一种方法
  • 有更多的细节

    • 我认为答案是改变你的工作流程

      我要做的是在编辑器(emacs)中编写函数,然后按组合键(
      Ctrl-Cctrl-e
      )将文本区域发送到(I)python解释器

      这样我可以保存函数,如果我想的话,也可以在解释器中使用它

      Emacs是我如何做到这一点的核心,但我确信在许多编辑器(vim、gedit等)和IDE中肯定有类似的方法

      在使用Python时,找到一个好的编辑器是至关重要的。编辑器必须能够轻松地左右移动代码块,否则空格问题将变得过于繁重


      我不喜欢在python解释器中键入代码块,因为它不允许我轻松地移动代码块。找到合适的编辑器后,您会更加喜欢Python。

      我认为这是不可能的


      Python可以使用inspect模块执行instrospection,但是如果没有源文件,该函数将无法工作。

      您可以设置一个Python历史文件,将键入的所有内容存储到解释器中

      以下是方法:


      在我看来,交互式编码会话的最佳环境必须是。它是在基本Python解释器的基础上构建并扩展的,具有很多魔力,包括历史。例如,您可以发出命令%logstart将所有后续输入转储到一个文件,该文件在成为脚本之前仍需要进行编辑,但这会给您带来很多工作

      安装IPython时,不要忘记

      但是,一般来说,最好在IDE中编写代码,然后运行它。IPython在这里也有帮助。如果编写并保存脚本,然后使用IPython“run”命令来运行它,那么脚本的整个全局命名空间将可在IPython会话中进行检查。此外,您可以使用-d参数运行,以在任何未处理的异常上立即触发pdb调试器


      如果你是一个比较直截了当的IDE和调试器类型的人,那么最简单和最好的轻量级环境必须是。

      这可能是最好的选择-我是一个eclipse迷,pydev能够在我的代码下面打开解释器非常棒。inspect.getsource很酷。。。感谢您提供有关检查功能的链接。。。may会派上用场:)@S.Lott-我从和开始。。。然后玩一些很酷的模块:)@Adam:你是说这两本书都没有提到“脚本文件”的概念?这部分不是线索@洛特:我可以编写模块,然后运行它们。。。当我在解释器中解决问题并在那里编写函数时。我的问题似乎类似于-也许我仍然掌握了正确的术语。@S.Lott-顺便说一句-你的书看起来很有趣。谢谢-这很有效。。。尽管输出已经转义了空格。我发现[有一个到…的链接,所以这可能是一种方法,但不幸的是,这两种方法在eclipse的pydev交互会话中都不起作用。谢谢!