I love assert

Ethan Furman ethan at stoneleaf.us
Tue Nov 11 15:08:16 EST 2014


On 11/11/2014 11:40 AM, Peter Cacioppi wrote:
>
> I get the impression that most Pythonistas aren't as habituated with assert statements
>  as I am. Is that just a misimpression on my part? If not, is there a good reason to
>  assert less with Python than other languages?
>
> As far as I can tell, Python supports assert perfectly well. When run with the optimization
>  flagging, the asserts are truly removed.
>
> I think one needs to take care with some basic assert coding - it's not a substitute for
>  unit tests, it doesn't absolve you of normal exception responsibilities, and, most of all,
>  it should be used for passive inspection and not action. But given these guidelines, I
>  still find it very useful as "active comments".

asserts are a specialized tool, easily abused.  Sounds like you are using them exactly as intended.

The key question to ask (if one is curious whether one is using assert correctly) is:  if all the asserts are removed, 
and my programs gets bad data, will it keep going as if it had gotten good data?  Or, will it fail at the point it 
should have failed, or will it fail somewhere else?

--
~Ethan~




More information about the Python-list mailing list