것은

2009-12-30 5 views
7
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),) 

답변

10

이 시도 :

x = NavigableString('foop') 
y = pickle.dumps(x) 
z = pickle.loads(y) 
print x, z 

즉 : __getnewargs__ 다시 해당 문자열에서 pickle.loads 적절한으로 NavigableString.__new__를 사용하는 방식으로 x 피클을 pickle.dumps을 알려줍니다 논의.