__getnewargs__' 在这段代码中有什么作用
class NavigableString(unicode, PageElement):
def __new__(cls, value):
if isinstance(value, unicode):
return unicode.__new__(cls, value)
return unicode.__new__(cls, value, DEFAULT_OUTPUT_ENCODING)
def __getnewargs__(self):#this line
return (NavigableString.__str__(self),)
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
1 个回答
15
试试这个:
x = NavigableString('foop')
y = pickle.dumps(x)
z = pickle.loads(y)
print x, z
也就是说:__getnewargs__
告诉 pickle.dumps
如何把 x
转换成一种格式,这样用 pickle.loads
从那个字符串再恢复回来时,会用到 NavigableString.__new__
并传入正确的参数。