Cierre de pitón con asignación de variable externa dentro de la función interna
Tengo este pedazo de código:
#!/usr/bin/env python
def get_match():
cache=[]
def match(v):
if cache:
return cache
cache=[v]
return cache
return match
m = get_match()
m(1)
Si lo ejecuto, dice:
UnboundLocalError: local variable 'cache' referenced before assignment
pero si hago esto:
#!/usr/bin/env python
def get():
y = 1
def m(v):
return y + v
return m
a=get()
a(1)
corre.
¿Hay algo con la lista? o mi organizacion de codigo esta mal?