On 06.08.12 20:02, Dieter Maurer wrote:
Serhiy Storchaka <storch...@gmail.com> writes:
On 05.08.12 09:30, Steven D'Aprano wrote:
If you are working in a tight loop, you can do this:

if VERBOSE_FLAG:
      for item in loop:
          print(DEBUG_INFORMATION)
          do_actual_work(item)
else:
      for item in loop:
          do_actual_work(item)

Or this:

if VERBOSE_FLAG:
     def do_work(item):
         print(DEBUG_INFORMATION)
         do_actual_work(item)
else:
     do_work = do_actual_work

for item in loop:
     do_work(item)

Be warned: a function call is *much* more expensive than an
"if variable:".

As any actual work. As iteration.

Yet one way:

def verbose_iter(it):
    for i in it:
        print(DEBUG_INFORMATION)
        yield i
...

if VERBOSE_FLAG:
    loop = verbose_iter(loop)
for item in loop:
    do_work(item)


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to