On Wed, Nov 12, 2014 at 7:03 AM, Ben Finney <ben+pyt...@benfinney.id.au> wrote: > An ‘assert’ statement in the code will sometimes be active, and > sometimes be a no-op, for *exactly* the same code under different > circumstances. That's a trap for the reader, and I'd rather not set it.
This is no worse than other forms of preprocessor magic. I've seen this kind of thing in plenty of C projects: #ifdef DEBUG_MODE #define DEBUG print #else #define DEBUG(...) #endif ... further down ... DEBUG("We're here: %d:%d", foo, bar); If you're not in debug mode, this won't be evaluated. You can have "active code" inside its args if you want to, but only if it's exclusively part of the debugging output: DEBUG("We've hit this line %d times", ++hitcount); Again, not materially different from assert, and plenty of projects have this. Maybe people just need to understand "assert == DEBUG" and all's clear? ChrisA -- https://mail.python.org/mailman/listinfo/python-list