Funciones enPythonse puede anidar dentro de otras funciones.
Una función definida dentro de una función es visible solo dentro de esa función.
Esto es útil para crear utilidades que sean útiles para una función, pero no útiles fuera de ella.
Podría preguntar: ¿por qué debería estar "ocultando" esta función, si no hace daño?
Uno, porque siempre es mejor ocultar la funcionalidad que es local a una función y no es útil en otros lugares.
Además, porque podemos hacer uso de cierres (más sobre esto más adelante).
Aquí hay un ejemplo:
def talk(phrase):
def say(word):
print(word)
words <span style="color:#f92672">=</span> phrase<span style="color:#f92672">.</span>split(<span style="color:#e6db74">' '</span>)
<span style="color:#66d9ef">for</span> word <span style="color:#f92672">in</span> words:
say(word)
talk(‘I am going to buy the milk’)
Si desea acceder a una variable definida en la función externa desde la función interna, primero debe declararla comononlocal
:
def count():
count = 0
<span style="color:#66d9ef">def</span> <span style="color:#a6e22e">increment</span>():
nonlocal count
count <span style="color:#f92672">=</span> count <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span>
<span style="color:#66d9ef">print</span>(count)
increment()
count()
Esto es útil especialmente con cierres, como veremos más adelante.
Más tutoriales de Python:
- Introducción a Python
- Instalación de Python 3 en macOS
- Ejecutar programas de Python
- Python 2 frente a Python 3
- Los fundamentos de trabajar con Python
- Tipos de datos de Python
- Operadores de Python
- Cadenas de Python
- Booleanos de Python
- Números de Python
- Python, aceptando entrada
- Declaraciones de control de Python
- Listas de Python
- Tuplas de Python
- Conjuntos de Python
- Diccionarios de Python
- Funciones de Python
- Objetos de Python
- Bucles de Python
- Módulos de Python
- Clases de Python
- La biblioteca estándar de Python
- Depurar Python
- Alcance de las variables de Python
- Python, acepta argumentos desde la línea de comandos
- Recursión de Python
- Funciones anidadas de Python
- Funciones de Python Lambda
- Cierres de Python
- Entornos virtuales de Python
- Usa una GoPro como cámara web remota usando Python
- Python, como crear una lista a partir de una cadena
- Decoradores de Python
- Cadenas de documentos de Python
- Introspección de Python
- Anotaciones de Python
- Python, cómo enumerar archivos y carpetas en un directorio
- Python, como comprobar si un número es par o impar
- Python, cómo obtener los detalles de un archivo
- Python, como comprobar si existe un archivo o directorio
- Excepciones de Python
- Python, como crear un directorio
- Python, como crear un archivo vacío
- Python, la declaración `with`
- Python, crea una solicitud de red
- Python, instalando paquetes de terceros usando `pip`
- Python, lee el contenido de un archivo