到目前为止,我一直在编写单脚本 Python程序,主要用于文本处理和数据分析。如何将Python/NumPy用于相当大的项目?
现在我想将我的一个旧的Matlab仿真项目带到Python/NumPy。在那个项目中,我有一个主要程序(在.m
文件中)有几十个功能(每个都在一个单独的.m
文件中)。在所有函数中都使用了全局变量,因此我不必将它们作为每个函数的参数输入。但是,如果不运行主程序,我不能运行/测试单个函数,因为全局变量将会是未定义的,或者它会调用另一个文件中的另一个函数。再加上文件的组织是一团糟。增加新功能,改变现有功能,特别是主程序是很痛苦的。
这次我想做的事情正确。如果这是正确的话,我希望程序有适当的体系结构。首先,我需要知道如何组织所有这些功能。我不认为每个小函数都有自己的文件是一个好主意。我想也许我可以将这些功能分成几组,每组可以是一个文件?它会是一个.py
文件或其他类型的文件?其次,我希望它很容易扩展,我可以轻松添加新功能。
我相信这样做肯定有一些标准的方法,但我不知道。
一个问题:当我运行MATLAB程序,它完成后,我仍然有在工作区所有的变量,所以我还是可以检查数字,使地块,等等。但是,当我跑我的Python脚本通过IPython shell,它清除了所有事后。有没有类似于工作区?
'python -i script.py'会让您在运行脚本后进入交互提示。我不知道'Ipython',但我敢打赌它的行为是一样的。 – mgilson 2013-02-13 02:10:23
取决于IDE,'Spyder'确实有'Variable Explorer',在那里你可以查看你的变量,但我不认为你可以像在MATLAB中一样保存工作区。但是,我发现使用'print'或'pprint'是查看变量最方便的方法。 – Akavall 2013-02-13 02:15:10
@mgilson - IPython的行为方式相同。 :) – Talvalin 2013-02-13 02:22:45