La palabra reservada defse usa para definir funciones.
Debe seguirle el nombre de la funcin y la lista
de parmetros formales entre parntesis. Las sentencias que forman el cuerpo de la funcin empiezan en la lnea siguiente, y deben estar con sangra. La primer sentencia del cuerpo de la funcin puede ser opcionalmente una cadena de texto literal; esta es la cadena de texto de documentacin de la funcin, o docstring. (Pods encontrar ms acerca de docstrings en la seccin Cadenas de texto de documentacin.) Hay herramientas que usan las docstrings para producir automticamente documentacin en lnea o imprimible, o para permitirle al usuario que navegue el cdigo en forma interactiva; es una buena prctica incluir docstrings en el cdigo que uno escribe, por lo que se debe hacer un hbito de esto. La ejecucin de una funcin introduce una nueva tabla de smbolos usada para las variables locales de la funcin. Ms precisamente, todas las asignaciones de variables en la funcin almacenan el valor en la tabla de smbolos local; as mismo la referencia a variables primero mira la tabla de smbolos local, luego en la tabla de smbolos local de las funciones externas, luego la tabla de smbolos global, y finalmente la tabla de nombres predefinidos. As, no se les puede asignar directamente un valor a las variables globales dentro de una funcin (a menos se las nombre en la sentencia global), aunque si pueden ser referenciadas. Los parmetros reales (argumentos) de una funcin se introducen en la tabla de smbolos local de la funcin llamada cuando esta es ejecutada; as, los argumentos son pasados por valor (dnde el valor es siempre una referencia a un objeto, no el valor del objeto). 4 Cuando una funcin llama a otra funcin, una nueva tabla de smbolos local es creada para esa llamada. La definicin de una funcin introduce el nombre de la funcin en la tabla de smbolos actual. El valor del nombre de la funcin tiene un tipo que es reconocido por el interprete como una funcin definida por el usuario. Este valor puede ser asignado a otro nombre que luego puede ser usado como una funcin. Esto sirve como un mecanismo general para renombrar: 19