[Python-ideas] Repurpose `assert' into a general-purpose check
Barry Warsaw
barry at python.org
Wed Nov 29 14:31:10 EST 2017
Nathan Schneider wrote:
> I think it would be interesting to investigate how assert statements are
> used in the wild. I can think of three kinds of uses:
assert statements are also a form of executable documentation. It says
something like "I think the internal state of my code must be this way,
otherwise I don't really understand what I wrote".
Now, maybe you could argue that such use should be enabled
unconditionally, but I disagree since usually your understanding of the
state of your code is correct, so the additional checks are unnecessary,
and people *do* use -O and -OO in practice. And these days it's even
more practical to do so, given the `opt-*` level of pyc tagging:
% python3 -c "import foo"
% python3 -O -c "import foo"
% python3 -OO -c "import foo"
% ls foo/__pycache__/
__init__.cpython-36.opt-1.pyc __init__.cpython-36.pyc
__init__.cpython-36.opt-2.pyc
I also wonder how this would interact with pytest's um, 'hijacking' of
the assert statement.
Cheers,
-Barry
More information about the Python-ideas
mailing list