私は、ファイルmyClass.pyにピクルス
class Test:
A = []
を簡単なPythonのクラス定義を持っていると私は、2つのテストスクリプトがあるとします。最初のスクリプトは、タイプTestのオブジェクトを作成し、配列Aに値を設定し、結果をファイルにpickleします。それはすぐにファイルからそれをunpickleし、配列はまだ入力されます。 2番目のスクリプトは、ファイルから少しだけ離れていて、は配列に入力されていません(つまりA == [])。どうしてこれなの?
test1.py
import myClass
import pickle
x = myClass.Test()
for i in xrange(5):
x.A.append(i)
f = open('data', 'w')
pickle.dump(x,f)
f.close()
f = open('data')
y = pickle.load(f)
f.close
print y.A
とtest2.py
import myClass
import pickle
f = open('data')
y = pickle.load(f)
f.close
print y.A
は、これはあなたが漬けていた場合、クラス自体、 'pickle.dump(テスト)'し、クラスをアンピックルは、あなたが戻って、両方のケースで正しいリスト 'A'を得ていることを意味していますか? – BallpointBen
@BallpointBenでは、[what-can-be-pickled-and-unpickled](https://docs.python.org/3/library/pickle.html#what- "pickle-un-pickle-unpickled"): "名前付き参照によってクラスが節約されるので、unpickle環境の同じ制限が適用されます。クラスのコードまたはデータは、 – jdi