Funciones en Python Clase 9 Introducción a la Computación Definición e Invocación • La definición e invocación de una función, es como vimos en C. Variables Locales y Globales • Al igual que en C, todas las variables definidas (recuerden que en Python no es necesario declararlas) dentro de una función son locales y solo existen y viven mientras dura la función. • Todas las variables definidas fuera de las funciones, son globales. • Los parámetros formales, también son locales a la función. Variables Locales y Globales • Obtenemos un error al intentar acceder a la variable a fuera de la función. Variables Locales y Globales • Las variables globales son aquellas definidas fuera del ámbito de cualquier función y son visibles para cualquier parte del programa o función, salvo que su nombre sea ocultado por otra variable dentro de una función, en cuyo caso dentro de esa función vale la variable local. Cadena de llamadas • Una función puede llamar a una función que a su vez puede llamar a una función y así sucesivamente…. ¿Ad infinitum? No, en algún momento hay que comenzar el camino de regreso…. Cadena de llamadas Paso de Parámetros: es por referencia 1 2 Líneas 19,20 y 21 antes y despúes del scanf 3 Línea 16: después del scanf 4 5 Línea 23: después del return Línea 24 Paso de Parámetros 6 7 Línea 28: después de la llamada Línea 8: al llamar area_triangulo 8 9 Línea 4 Línea8: al volver de area triangulo Paso de Parámetros 10 11 Línea 9: antes del return Línea 28: asignando el valor de retorno a resultado 12 Estado Final de la Pila de Activación Paso de parámetros • En Python, a diferencia de C, el paso de parámetros es por referencia… pero, ojo!!! La asignación crea una nueva variable en memoria! Por lo tanto no modifica el argumento real. def asd(ss): ss = 5 print ss ss = 3 asd(ss) print ss