我不确定我是否正确地说明了这个主题,但基本上我很好奇是否有人可以在Python IDLE或类似工具中开发代码,然后通过一些命令吐出当前的代码记忆。我相信我之前在阅读Lisp书时已经这样做了,并且回想起它与通常重新运行静态文件的方法截然不同。有关如何做到这一点或类似的任何建议?感谢
UPDATE 我最终使用了IDLE使用execfile和reload命令的组合,同时在单独的编辑器(eclipse / pydev)中编辑代码。我改变了我的" main"文件,以便在调用execfile时不会立即执行任何操作。主文件和导入的模块中的代码被加载到当前作用域/堆栈中,以便我编写新代码或发生错误,我可以直接在IDLE命令行中进行测试。一旦我找到问题或前进的方法,我就在编辑器中更新代码,运行reload(module)以获取更新的模块,然后在主文件上运行execfile(path)。
答案 0 :(得分:5)
这对LISP来说是明智的原因是每个LISP程序只是一堆宏和函数,并且s表达式可以自动格式化为一个很好的表示。
在Python中不是这种情况,你有更复杂的语法(重要的空白,装饰器,大量的控制结构,不同类型的字符串文字......)和更多的语义元素(类,函数,顶部 - 级别代码,...),所以这种方法在这里不会很好用。即使是最小的项目,生成的代码也会变得非常混乱,结果代码仍然需要大量的“后期处理”,这有点扼杀了开发优势的速度。
相反,您可以在优秀的文本编辑器中编写代码并
execfile
将其加载到REPL中,这将为您提供良好的文本编辑和提示的交互性。您还可以获得功能更全面的IDE,支持代码评估和全面调试(PyDev就是一个例子,感谢s2222)。