Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Es posible hacer return a una función superior desde una inferior? #133

Open
4 tasks done
3rdPix opened this issue Sep 6, 2022 · 1 comment
Open
4 tasks done
Assignees

Comments

@3rdPix
Copy link

3rdPix commented Sep 6, 2022

Prerrequisitos

(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")

Contenido

Supongámos que tengo un código así:

funcion1(x):
    while True:
        # hace cosas
        funcion2(x)

funcion2(x):
    # hace otras cosas
    print('aiuda cómo salgo de aqui')
    if PASA_ALGO:
        return return # return al cuadrado?

Tengo una función1, que corre eternamente y hace cosas, y dentro de ella se llama a una funcion2 que hace otras cosas. Sin embargo, en esta función 2 tengo un identificador que me permitiría detener esta eternidad. El problema, claro, es que un return solo detendría la segunda función, y no la superior, yo necesito detener la superior. ¿Existe alguna forma de indicar en una funcion inferior, el retorno de una que le llama?

@MrNachoX MrNachoX self-assigned this Sep 8, 2022
@MrNachoX
Copy link

MrNachoX commented Sep 8, 2022

Hola @3rdPix!
Hasta donde sé, eso no es posible y aunque pudieras hacerlo no sería una buena práctica. Lo que puedes hacer es utilizar un if en la función superior para que termine en el caso de que la función 2 retorne cierto valor.

funcion1(x):
    while True:
        # hace cosas
        respuesta = funcion2(x)
        if respuesta == "terminar":
            return

funcion2(x):
    # hace otras cosas
    print('aiuda cómo salgo de aqui')
    if PASA_ALGO:
        return "terminar"
    else:
        return "otra_cosa"

Quedo atento por si tienes más dudas sobre esto.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants