[Python-ideas] Dynamic code NOPing

Jasper St. Pierre jstpierre at mecheye.net
Tue Dec 25 08:40:10 CET 2012


if __debug__:
    log(factorial(2**15))

Running python with -O will squash this statement. To have something
inline, you could also abuse assert statements to do the job.

def debug_log(x):
    log(x)
    return True

assert debug_log(factorial(2**15))

In optimized builds, the statement will be removed entirely.



On Tue, Dec 25, 2012 at 1:28 AM, anatoly techtonik <techtonik at gmail.com>wrote:

> For the logging module it will be extremely useful if Python included a
> way to disactivate processing certain blocks to avoid making sacrifices
> between extensive logging harness and performance. For example, instead of
> writing:
>
> if log.DEBUG==True:
>   log(factorial(2**15))
>
> It should be possible to just write:
>   log(factorial(2**15))
>
> if if log() is an instance of some Nopable class, the statement in log's
> braces is not executed.
> --
> anatoly t.
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> http://mail.python.org/mailman/listinfo/python-ideas
>
>


-- 
  Jasper
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20121225/1f9ca0dd/attachment.html>


More information about the Python-ideas mailing list