From e1b5968857d64130d1575e81d7e65cf96769d527 Mon Sep 17 00:00:00 2001 From: Simon Weber Date: Wed, 3 Apr 2013 23:24:02 -0400 Subject: [PATCH] close #241 --- docs/writing/gotchas.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/writing/gotchas.rst b/docs/writing/gotchas.rst index 9f389bf67..217366642 100644 --- a/docs/writing/gotchas.rst +++ b/docs/writing/gotchas.rst @@ -128,11 +128,12 @@ What Does Happen Five functions are created, but all of them just multiply ``x`` by 4. -Python's closures are *late binding*. This means that names within closures are -looked up at the time the inner function is *called*. +Python's closures are *late binding*. +This means that the values of variables used in closures are looked +up at the time the inner function is called. Here, whenever *any* of the returned functions are called, the value of ``i`` -is looked up in the surrounding scope at call time, when by then the loop has +is looked up in the surrounding scope at call time. By then, the loop has completed and ``i`` is left with its final value of 4. What's particularly nasty about this gotcha is the seemingly prevalent