我是 Python 新手,正在玩 Pickle,但不明白这是如何工作的
我定义了一个 defaultdict,把它写到 pickle 中。然后在不同的脚本中我阅读了它,即使没有导入集合,它仍然表现得像一个 defaultdict
脚本1:
import pickle
from collections import defaultdict
x = defaultdict(list)
x['a'].append(1)
print(x)
with open('pick','wb') as f:
pickle.dump( x, f )
脚本2:
import pickle
with open('pick','rb') as f:
x = pickle.load( f )
x['b'].append(2)
print(x)
y = dict()
try:
y['b'].append(2)
print(y)
except KeyError:
print("Can't append to y")
跑步:
$ python3 pick2.py
defaultdict(<class 'list'>, {'a': [1], 'b': [2]})
Can't append to y
因此,第二个脚本不导入 defaultdict 但腌制的 x 仍然像一个脚本。我很困惑 :)
这在 Python 中是如何工作的?感谢您提供任何信息:)
相关分类