9
假設我有一個簡單的python類定義在文件中myClass.py泡椒使用自定義類
class Test:
A = []
而且我也有兩個測試腳本。第一個腳本創建一個類型爲Test的對象,填充數組A,並將結果粘貼到文件中。它立即從文件中取消它,並且數組仍然被填充。 第二個腳本只是從文件中取消,而數組未填充(即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-pick-and-unpickled](https://docs.python.org/3/library/pickle.html#what-可以被醃製和不可榨取):「類被命名參考醃製,所以在不沾染環境中應用相同的限制。注意,沒有任何類的代碼或數據被醃製」 – jdi