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
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


0