0

Como pone en el titulo tengo duda del valor de num2, vengo de java el caso es que ¿res no debería de estar declarada como atributo?

def num1(x):
    def num2(y):
        return x * y
    return num2

res = num1(10)
print(res(5))
FJSevilla
  • 55,603
  • 7
  • 35
  • 58
oshju
  • 1
  • 3
  • 2
    Hola oshju, he corregido la identación y el formato del código, mira que esté tal como tu lo tienes para estar seguros. En cuanto a la duda, mencionas un ciclo `for`, pero en el código no hay ninguno ¿podrías aclarar ésto? `res` en ese código es una variable global sin más. – FJSevilla May 06 '20 at 11:54
  • tu pregunta va a como funcionan las clausuras te recomiendo [leer esta pregunta](https://es.stackoverflow.com/questions/607/c%c3%b3mo-funcionan-las-clausuras-en-javascript) – JackNavaRow May 06 '20 at 15:07

1 Answers1

0

No teindria que estar declardo. En python no se delaran las variables si eso es lo que preguntas.

Y lo que estas haciendo mas o menos es crear un generador en res que guarda el valor 10 dentro de num2 y te devuelve el generador (la funcncion num2 donde x = 10), mas tarde ejecutas la funcion generada que ahora esta dentro de res,

ejemplo:

res = num1(10)

en este caso res es igual a

def res(y):
    return 10 * y
ikenas
  • 196
  • 3
  • en este caso la variable esta declarada en el parametro de entrada de la funcion creo que tu tambien deberias de leer como funcionan las clausuras – JackNavaRow May 06 '20 at 15:20