我不能理解它。非常简单和明显的功能:你有一个用任何编程语言编写的代码,你可以运行它。在这段代码中,您可以生成变量,然后使用一个命令将它们(值、名称,即所有内容)保存到一个文件中。当它被保存后,你也可以用简单的命令在你的代码中打开这样的文件。它在matlab (保存工作区,加载工作区)中工作得很好-在python中有一些奇怪的"pickle“协议,它总是产生错误,而我想做的就是保存变量,然后在另一个会话中再次加载它(?)f.e.你不能用变量来保存类(在Matlab中没有问题),你不能在cPickle中加载数组(但是You可以保存它们(?))为什么不让它更简单一些呢?有没有一种方法可以保存当前变量和值,然后加载它们?
发布于 2010-06-11 00:07:48
您所描述的是Matlab环境特性,而不是编程语言。您需要的是一种存储某个对象的序列化状态的方法,这几乎可以在任何编程语言中轻松完成。在python的世界里,pickle是实现它的最简单的方法,如果你能提供更多关于它为你产生的错误的细节,人们可能会给你更多的细节。一般而言,对于面向对象的语言(包括python),将状态封装到单个对象中,然后存储/加载此类类的实例,这始终是一种好方法。对于许多开发人员来说,这类对象的酸洗和解酸工作得很好,所以这一定是特定于您的实现的。
发布于 2010-06-11 09:21:16
既然您正在谈论Matlab语言,那么您可能想尝试一下IPython,它是一个Python,它提供了比您在执行Python时获得的标准解释器shell更多的功能。
其中的功能包括加载/保存工作空间会话,在会话输入之外创建宏等,这可能更像你在Matlab中使用的功能(我实际上使用了这两种功能,并且发现IPython更优雅,但YMMV):
发布于 2010-06-11 00:11:26
PiCloud实现了一个更花哨的pickle,但我找不到代码。我看到了一个poster session。
通常在Python中,实例化的对象没有任何一种方法可以重新创建它们,在某些情况下,它特别困难(就像一个打开的文件),因为它需要几个步骤才能重新创建。
https://stackoverflow.com/questions/3016116
复制相似问题