"Veek. M" <vek.m1...@gmail.com> writes: > import socket > class Client(object): > def __init__(self,addr): > self.server_addr = addr > self.sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) > self.sock.connect(addr) > > def __getstate__(self): > return self.server_addr > > def __setstate__(self,value): > self.server_addr = value > self.sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) > self.sock.connect(self.server_addr) > ----------------- > > We'd use it like so: > x = Client(192.168.0.1) > import pickle > pickle.dump(x) #getstate gets called and returns IP for pickling. > > #program exits, we restart it > x=Client(None) > x = pickle.load(fh) #Is the IP passed to setstate?????? > x.__setstate__(self, unpickledIP) ??? > Is this correct?
Not completely. "pickle" operates on objects - and calls "__getstate__" and "__setstate__" internally. Thus, you get something like: client = Client() pickle.dump(client, open(fn, "wb")) .... recreated_client = pickle.load(open(fn, "rb")) -- https://mail.python.org/mailman/listinfo/python-list