私は外部プログラムにPythonインタフェースを提供するライブラリを使用しています。これは私が作成することができます:Python:スクリプトの複数の呼び出しでオブジェクトインスタンスを共有する方法
foo = Foo()
上記のコードは、私がPython内から制御できるFooプログラムの新しいインスタンスを開始します。
私はPythonスクリプトを複数回呼び出す必要があり、外部パラメータに応じて、外部のFooプログラムの1つのインスタンスに異なることを伝えます。それはFooの私のスクリプトを実行するたびに新しいインスタンスを作成しますので、明白な私は
foo = Foo()
毎回、
を行うことはできません。
私がしたいことは、foo= Foo()
を一度作成し、複数の呼び出しが同じインスタンスを共有することです。現在、私はそれを一度作成してシリアライズし、スクリプトをデシリアライズすることを考えています。このアプローチは機能しますか?よりよい選択肢がありますか?
ありがとうございます!
私はそれを実際にやってみました。「pickleロックできません」というメッセージが表示されました。私は今それを調べている。 – wk1989
ええ、それはあなたが望むことをするために回避することができないかもしれません:http://docs.python.org/library/pickle.html#what-can-be-pickled-and-unpickled – zeekay
ロックを使用している場合は、クラスにロックされたアクセスを提供するために、ソケットやパイプのような別のパスを取る必要があるかもしれません。 – lunixbochs