我如何理解这种关于酸洗和解酸工作原理的描述?

时间:2019-06-02 11:55:52

标签: python python-3.x pickle

我对以下从 Nutshell中的Python进行酸洗和酸洗的描述感到困惑。我不清楚“否则”和“在这种情况下”的用法,我不确定它们指的是哪种情况。如果您能以更清晰的方式(例如用伪代码)重新命名,我将不胜感激。

  

这是pickle如何保存类的实例对象x的状态   T,然后将保存的状态重新加载到T的新实例y中   (重新加载的第一步始终是将新的   T的实例y,除非我们在   以下):

     

•当T提供方法__getstate__时,泡菜将保存   调用T.__getstate__(x)的结果d。

     

•当T提供方法__setstate__时,d可以是任何   键入,并且pickle通过调用重新加载保存的状态   T.__setstate__(y, d)

     

•否则,d必须是字典,而pickle只会设置   y.__dict__ = d

     

•否则,当T提供方法__getnewargs__时,并且   腌制协议2或更高的腌制,腌制保存   调用t的结果T.__getnewargs__(x)t必须是   元组。

     

•在这种情况下,泡菜不是以空的y开头,而是   而是通过执行y创建y = T.__new__(T, *t),   重新加载结束。

     

•否则,默认情况下,泡菜将字典另存为d   x.__dict__

     

•当T提供方法__setstate__时,泡菜重新加载   通过调用T.__setstate__ (y, d)保存状态。

     

•否则,泡菜只设置y.__dict__ = d

1 个答案:

答案 0 :(得分:3)

该描述确实需要缩进或更好地表明什么与什么进行了匹配。以下是它要说的流程图: enter image description here