[Tutor] interacting with stderr
Alan Gauld
alan.gauld at btinternet.com
Sun Aug 31 00:53:53 CEST 2014
On 30/08/14 23:31, Bo Morris wrote:
> time to a more appropriate amount. Anyone see any issues with it or ways
> to make it better?
One obvious issue:
> while True:
> while count < 15:
> for line in p.stderr:
> if "Segmentation" in line:
> while restart < 3:
> for line in p.stderr:
> if "storing 0x" in line:
> while restart < 3:
> for line in p.stderr:
> print line
> if count == 15:
> break
> break
First, there are a lot of embedded loops in there, that's usually a
design warning that maybe you need to look at things again. In
particular I'm suspicious of those two "for line in p.stderr" loops
inside a loop that is itself a "for line in p.stderr" loop.
That feels wrong. I haven't worked through the detail so it
might be valid but it smells bad to me.
Looking closer, you are reassigning p in the middle of a loop that
depends on p. That's usually not a good idea...
Second, the last break does nothing except terminate the outer loop
after the first time through. So you might as well miss out the
initial "while True" line...
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos
More information about the Tutor
mailing list