Modifying a variable in a non-global outer scope?
bruno at modulix
onurb at xiludom.gro
Fri May 19 15:24:27 EDT 2006
Edward C. Jones wrote:
> #! /usr/bin/env python
> """
> When I run the following program I get the error message:
>
> UnboundLocalError: local variable 'x' referenced before assignment
>
> Can "inner" change the value of a variable defined in "outer"?
Not this way
> Where
> is this explained in the docs?
IIRC,
http://www.python.org/doc/2.4.2/ref/naming.html
> """
> def outer():
> def inner():
> x = x + 1
>
> x = 3
> inner()
> print x
>
> outer()
What are functions arguments and return values for ?
def outer():
def inner(x):
return x+1
x = 3
x = inner(x)
print x
outer()
Using side-effects - specially this way - is a Very Bad Thing(tm). It
makes code that is hard to read and hard to maintain.
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb at xiludom.gro'.split('@')])"
More information about the Python-list
mailing list