dado:python: ¿Cómo capturo una variable declarada en un ámbito externo ancestral no global?
def f():
x = 0
def g():
h()
def h():
x += 1
print(x)
g()
>>> f()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 8, in f
File "<stdin>", line 4, in g
File "<stdin>", line 6, in h
UnboundLocalError: local variable 'x' referenced before assignment
>>>
¿Cómo puedo hacer h
ver la variable x
?
Gracias.
EDITAR
debería haber mencionado antes, estoy usando Python 2.7.3
parece como casi -Global para mí ... ¿mala idea? (pero aún es una buena pregunta) – Shep
@Shep: quiere una x diferente para cada llamada f(), por lo que una variable global no funcionaría. – EOL