[pyar] Pregunta sobre codigo en las FAQ

Lucas Manuel Rodriguez lucarodriguez en gmail.com
Jue Ene 16 15:13:19 ART 2014


Hola gente, pregunta muy simple,

En su página de FAQ [0] encontré el siguiente excerpt de code:

def f(x):
  def g():
    x += 1
    return x
  return g()
  # aquí "x" se incrementó, x no es local a 'g'
  # x es una celda en toda la función f
  # para que pueda ser accedida desde g y f a la vez

El cual si lo ejecuto agregándole al final por ejemplo 'i = f(5)' obtengo:

$ python ./test.py
Traceback (most recent call last):
  File "./test.py", line 7, in <module>
    i = f(5)
  File "./test.py", line 5, in f
    return g()
  File "./test.py", line 3, in g
    x += 1
UnboundLocalError: local variable 'x' referenced before assignment

FYI,
$ python --version
Python 2.7.4

Sino me equivoco, en Python, en la sentencia 'x += 1' se esta declarando a
'x' como local en 'g()' (al querer escribirla) y a su vez se esta leyendo
su valor (que no fue asignado) por eso viene el 'UnboundLocalError'.

Avisenme si se me está escapando algo.

[0] -
http://python.org.ar/PreguntasFrecuentes#A.2BAL8-Qu.2BAOk_son_las_celdas.3F

Saludos.
Rodríguez, Lucas Manuel.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140116/3be4d7b3/attachment.html>


More information about the pyar mailing list