[Python-ideas] Runtime assertion with no overhead when not active
Barry Scott
barry at barrys-emacs.org
Thu May 10 03:55:44 EDT 2018
> On 7 May 2018, at 18:52, Guido van Rossum <guido at python.org> wrote:
>
> On Mon, May 7, 2018 at 6:24 AM, Serhiy Storchaka <storchaka at gmail.com <mailto:storchaka at gmail.com>> wrote:
> I just don't understand why you need a new keyword for writing runtime checks.
>
> Oh, that's pretty clear. The OP wants to be able to turn these checks off with some flag he can set/clear at runtime, and when it's off he doesn't want to incur the overhead of evaluating the check. The assert statement has the latter property, but you have to use -O to turn it off. He basically wants a macro so that
>
> runtime_assert(<expr>)
>
> expands to
>
> if <controlling flag> and (<expr>):
> raise AssertionError
>
> In Lisp this would be easy. :-)
This idea requires the same sort of machinery in python that I was hoping for to implement the short circuit logging.
My logging example would be
log( control_flag, msg_expr )
expanding to:
if <control_flag>:
log_function( <msg_expr> )
Barry
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180510/a70886c5/attachment.html>
More information about the Python-ideas
mailing list