On 12/22/2013 08:57 PM, Roy Smith wrote:
In article <52b7a0e4$0$29994$c3e8da3$54964...@news.astraweb.com>,
  Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info> wrote:

Anyway, I may be completely misinterpreting what I'm reading. Perhaps the
assertion is checking a function invariant ("one of the strategies will
always succeed") in which case you're doing it exactly right and I should
shut up now :-)

Yes :-)

More specifically, the assertion exception will get caught way up in
some django middleware which will log a stack trace and return a HTTP
50-something.  This will typically be followed by somebody like me
noticing the stack dump and trying to figure out WTF happened.

This is completely misusing what assertions are for. I hope this bit of middleware (or django itself) is very clear about never running with assertions turned off.


Assertions are great tools.

Only when used properly.

People should use them more often.

I see them being (mis)used too much as it is.

In a
sense, they're executable comments.  They're a programmer's way of
standing on a hilltop and shouting to all the world, "I swear to you,
this is true.  There may be a gazillion lines of code out there and
GBytes of program state, but right here, right now, within this circle
I've drawn in the sand,

Considering how easy it is to disable assertions, a circle in the sand is an 
amazingly appropriate metaphor.  :)

--
~Ethan~
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to