[Python-es] scope de variables
Dr. Bobus
drbobus en gulic.org
Vie Jun 18 20:11:23 CEST 2010
El Fri, 18 Jun 2010 12:49:14 +0100
"Dr. Bobus" <drbobus en gulic.org> dijo:
> Hola todos:
>
> Me he enganchado en algo que supongo será una trivialidad, pero enganchado estoy.
>
> He puesto un esqueleto de mi programa en:
>
> http://snipt.org/Qkkh
>
> Obtengo error (NameError: name 'cmasa' is not defined) en la linea 13 de forma sistemática.
La verdad es que llevo todo el día con esto ... :(
He ido intentando aislar el tema y al final he llegado a esto:
Este código funciona:
a = 1
def f1():
print a
f1()
Este código da error:
a = 1
def f2():
print a
a += 5
f2()
File "prueba.py", line 9, in f2
print a
UnboundLocalError: local variable 'a' referenced before assignment
Este código funciona:
a = 1
def f3():
global a
print a
a += 5
f3()
Este código funciona:
a = 1
def f4():
print a
b = a
b += 5
f4()
Alguien me puede explicar porqué f2() da error y además porqué lo da con el print y no en la asignación?
Muchas gracias
Dr. Bobus
--
"World domination. Fast."
(By Linus Torvalds)
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: no disponible
URL: <http://mail.python.org/pipermail/python-es/attachments/20100618/e2286d5c/attachment.pgp>
Más información sobre la lista de distribución Python-es