Replacement for keyword 'global' good idea? (e.g. 'modulescope' or 'module' better?)

Paul Rubin http
Sat Aug 6 20:42:31 EDT 2005


Mike Meyer <mwm at mired.org> writes:
> You can't "fix" this. This code (in some python-like langauge that
> isn't python):
> 
> x = 23
> 
> def fun():
>     x = 25
>     # Rest of code
> 
> has two possible interpretations.

The fix is to add a "local" declaration in "fun":

   local x = 25

for example.  If you want the one from the outer scope, then use, perhaps,

  outer x = 25

One really screwy situation with Python is

    x = 23
    def f():
      x = 25
      def g():
        x += 3

g obviously is supposed to inherit x from the surrounding scope, but
there's no way for g to actually change x.



More information about the Python-list mailing list