0

Python での Pickler の興味深い使用例があります。オブジェクトへの参照を持つオブジェクトでマルチプロセッシングを行っています。

メンバー オブジェクトのピクルに関するこの質問では、Pickler がそのメモを使用して、新しいオブジェクトを構築する代わりに元のオブジェクトをロードするだけであることがわかります。ファイルに Pickling せずに Pickler をメモ付きで使用する方法はありますか?

使用例: (A、B、C はすべてスマート ハッシュと eq を持ちます)

  1. マスターはサブオブジェクト B でオブジェクト A をピクルし、A を別のプロセスに送信します。
  2. 子プロセスは Picked オブジェクト C を返します。これにはオブジェクト B も含まれる場合があります。
  3. マスターは C を unpickle し、コピーを作成せずに B を参照するほどスマートです。

cpickle でこれらすべてを行うのはどうですか?

4

1 に答える 1

0

dumps文字列を使用するとloads関数があります

>>> from cPickle import dumps, loads
>>> d={'foo': 'bar'}
>>> dumps(d)
"(dp1\nS'foo'\np2\nS'bar'\np3\ns."
>>> loads(_)
{'foo': 'bar'}

オブジェクトでdump/loadを使用することもできますStringIO

>>> from cPickle import dump, load
>>> from cStringIO import StringIO
>>> S=StringIO()
>>> d={'foo': 'bar'}
>>> dump(d, S)
>>> S
<cStringIO.StringO object at 0x20c3960>
>>> S.seek(0)
>>> load(S)
{'foo': 'bar'}
于 2013-05-16T22:02:14.030 に答える