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