Oddity question
mcherm
mcherm at destiny.com
Tue Feb 26 16:04:15 EST 2002
More information about the Python-list mailing list
Tue Feb 26 16:04:15 EST 2002
- Previous message (by thread): Oddity question
- Next message (by thread): Oddity question
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
> I was fooling around with sockets last night, using a thread to deal = > with the read part and another method to do the print. > > like this: > > def thread_read (self): > while 1: > self.buf=3Dself.buf+self.my_socket.recv (8) > > def print_buf(self): > if buf: > print "bufeer-->",buf > buf=3D'"" > > But, what happened to me was that the -buf =3D ""- line seemed to be not = > working [...] > So, I dont know why I changed thread_read function to: > > while 1: > aux=3Dself.my_socket.recv (8) > self.buf=3Dself.buf+aux > > And this version worked properly..... but I still do not know why. Well, I can't tell exactly what you were doing here (try sending plain text instead of html... it doesn't get mangled as much), but I do see one thing. In the example that doesn't work you have a line 'buf=""' at the end of a function or method, while the example that DOES work has 'self.buf=self.buf+aux' inside a loop. If buf is a local variable, then 'buf=""' at the end of a function will only modify the local variable and do nothing to the actual buffer (strings are immutable in Python). Modifying self.buf in a loop will not be lost in this fashion. Does that help any? -- Michael Chermside
- Previous message (by thread): Oddity question
- Next message (by thread): Oddity question
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list