When to use assert
roy at panix.com
Sun Nov 17 14:33:48 CET 2013
In article <528871d5$0$29975$c3e8da3$5496439d at news.astraweb.com>,
Steven D'Aprano <steve+comp.lang.python at pearwood.info> wrote:
> * Don't use assert for any error which you expect to recover from.
> In other words, you've got no reason to catch an AssertionError
> exception in production code.
Which leads to another reason for using asserts...
Every once in a while, I'll get into a situation where something is
happening that I just can't understand. If a given pice of code is
being called, there's NO WAY the program should be exhibiting the
behavior it's exhibiting. But, there's also NO WAY that piece of code
can't be getting called.
So, I stick "assert 0" in the code an re-run the program to see if I get
an AssertionError. If I do, then I know the code is being run. If I
don't then I know it's not. Either way, I know more about what's going
on than I did before. Once I know what's going on, I remove the assert.
More information about the Python-list