Steven D'Aprano wrote: > On Tue, 05 Jan 2010 13:06:20 +0000, r0g wrote: <snip> >> Well maybe I didn't quite get it then, could you explain a bit further? >> >> My understanding was that asserts aren't executed at all if python is >> started with the -O or -OO option, > > Correct. > > >> or run through an optimizer. > > I don't know what you mean by that.
I've never used them but I heard there are optimizers for python (psycho?). I assumed these would do everythin -O does and more, including losing the asserts. > >> If >> that's the case how can you expect it to validate anything at all in >> production? > > The asserts still operate so long as you don't use the -O switch. > >> Do you mean for debugging in situ or something? Could you >> maybe give me an example scenario to illustrate your point? > > > There are at least two sorts of validation that you will generally need > to perform: validating user data, and validating your program logic. > <snipped very detailed and clear response, thanks :)> Cool, that's what I thought i.e. you can't rely on asserts being there so don't use them for anything critical but it's still a good idea to use them for logic/consistency checking in production code as, should you be running your production code unoptimised, it might catch something you'd otherwise miss. Thanks for responding is such detail :) Roger. -- http://mail.python.org/mailman/listinfo/python-list