来自__reduce__
的docs的可选第4和第5个返回值:
可选地,迭代器(而不是序列)产生连续的列表项。这些列表项将被pickle,并附加到对象...
可选地,迭代器(不是序列)产生连续的字典项,它应该是(key, value)
形式的元组。这些项目将被腌制并使用obj[key] = value
...
为什么这些值需要是迭代器?如果我们有一个要追加的东西列表,我们必须在返回它之前调用iter
,这似乎很奇怪。为什么pickle协议需要迭代器,为什么不能为我们调用iter
?