Python - Posible Bug en Var local??

 
Vista:

Posible Bug en Var local??

Publicado por Emilio (4 intervenciones) el 22/08/2008 15:24:33
Buenas
Si defino una funcion asi:

1>>>def funcion():
a="hola"
print a


2>>> funcion()
hola
3>>> a="carola"
4>>> funcion()
hola
5>>> a
'carola'

En la linea 1 la variable a es local y a ="hola"
Si llamo a lafuncion me dice que a="hola"

en la linea nº 3 (los numeros de linea yo los agregué), redefino a="carola"
Si llamo a la funcion, redefine a como "hola" e imprime, o sea el ultimo valor de a es "Hola"
Pero si mando verificar el valor de a, me responde a="carola" (linea 5)

Lo mismo ocurre cuando cunado defino una funcion sin parametros y mando imprimir el valor de una variable, dentro de la funcion
quiere decir que si dentro del programa atribuyo una valor a una variable,ésta pasa a ser Global?

Y como es si atribuyo otro valor a esa misma variable dentro del procedimiento, cuando mando imprimir su valor fuera de la funcion no cambia de valor?

Soy programador VB, Pascal, C... y es la primera ves que me ocurre, hasta ahora no entiendo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder