[Python-Dev] Explicit Lexical Scoping (pre-PEP?)

Fredrik Lundh fredrik at pythonware.com
Fri Jul 7 12:38:43 CEST 2006


Just van Rossum wrote:

> Why couldn't at least augmented assignment be implicitly rebinding? It
> has been suggested before (in the context of a rebinding operator), but
> I'm wondering, is this also off the table?
> 
>     def counter(num):
>         def inc():
>             num += 1
>             return num
>         return inc
> 
> Reads very natural to me. It's likely the most frequent example of what
> people try before they learn that rebinding to outer scopes isn't
> allowed. It could Just Work.

note that most examples of this type already work, if the target type is 
mutable, and implement the right operations:

      def counter(num):
          num = mutable_int(num)
          def inc():
              num += 1
              return num
          return inc

maybe we should consider adding mutable strings and mutable numbers to 
Python 3.0 ?  and a "mutable" built-in, that does the opposite of the 
"freeze" stuff:

      def counter(num):
          num = mutable(num)
          def inc():
              num += 1
              return num
          return inc

(what is this thread doing on python-dev, btw?  shouldn't it be over at 
the 3000 list, so I can enjoy my vacation without being drawn into yet 
another endless discussion thread ;-)

</F>



More information about the Python-Dev mailing list