class A( object ): def __init__( self ): self.__setstate__( {} ) def __setstate__( self, d ): self.a = 1 self.__dict__.update( d ) def __getstate__( self ): d = self.__dict__.copy() d.pop( 'a' ) return d a = A() print a.__dict__ a.__setstate__( a.__getstate__() ) print a.__dict__ from copy import deepcopy print deepcopy( a ).__dict__