Matices al trabajar con funciones internas en Python

En Python no solo puede haber funciones anidadas, sino que una función puede devolver otra. Por ejemplo, supongamos que la función outer devuelve como resultado el código fuente de la función inner:

pythondef outer():
  def inner():
    return '+++'

  return inner

Escribamos la llamada a outer en la variable res:

pythonres = outer()
print(res)

Después de ejecutar el código, se mostrará un objeto de función:

python<function outer.<locals>.inner at 0x000001564A212B90>

Si llamamos a la variable res con paréntesis, se devolverá el mensaje '+++':

pythonprint(res()) # mostrará '+++'

Se puede reescribir el código para que en res se escriba outer con dos pares de paréntesis - para llamar a sí misma y a la función inner. De lo cual se deduce que se pueden escribir paréntesis adicionales a la derecha de la función externa según la cantidad de funciones anidadas en ella:

pythonres = outer()()
print(res) # mostrará '+++'
Задание 1

Se da el siguiente código:

pythondef outer():
  def inner(num):
    return num + 2

  return inner
  
res = outer()(3)
print(res)

Digamos qué se mostrará en la consola.

Задание 2

Se da el siguiente código:

pythondef outer():
  def inner(txt):
    return 'hello, ' + txt

  return inner
  
res = outer()
print(res)

Digamos qué se mostrará en la consola.