tengo una duda, como hace la variable password de la función protected_func(password) para llegar a ser el argumento de la función wrapper?

Pregunta de la clase:
Decoradores en Python
Brahian Sebastian Cleves Romero

Brahian Sebastian Cleves Romero

Pregunta
studenthace 5 años

tengo una duda, como hace la variable password de la función protected_func(password) para llegar a ser el argumento de la función wrapper?

2 respuestas
para escribir tu comentario
    Alejandro Cuello Maure

    Alejandro Cuello Maure

    studenthace 5 años

    Lo que hace por debajo no es llamar la funcion "protected_func", porque esta no tiene parametros. Si no usar el "nombre" de la funcion "protected_func" para invocar al metodo decorador

    # por eso se pone con @ el metodo decorador encima de la funcion que queremos decorar @mi_metodo_decorador def protected_func(): print('Contraseña correcta')

    y los parametros que le pasemos no son para "protected func" si no para la funcion interna que esta adentro funcion decoradora.

    Viendolo de otra forma es como llamar la funcion decoradora por un "apodo". Este apodo es el nombre de la funcion que queremos decorar (en este caso "protected_func") pero los argumentos van a la funcion que estamos "apodando" o sea en este caso para la funcion "wrapper".

    password = input('Escribe la contraseña: ') protected_func(password) # lo que hicimos es "apodar" el metodo decorador (wrapper) y le pasamos el parametro que necesita.
    Ariel Ricardo Cornejo Jiménez

    Ariel Ricardo Cornejo Jiménez

    studenthace 5 años

    viendo el codigo lo que entiendo yo (es mi opinion habria que verificar si es asi). quiza la duda es porque la funcion protected_func() no recibe ningun parametro al definirla pero abajo cuando la llamas si le pasas el parametro password. Entonces cuando el codigo se va a ejecutar, antes de realizar la funcion, el decorador anticipa tanto la funcion como el parametro y lo encapsula convirtiendolos en el parametro del decorador para asi tener acceso a la funcion como tal y al parametro... haciendo que wrapper tenga acceso a password

Curso de Python 2019

Curso de Python 2019

Python es una pieza fundamental de varios sistemas de software más importantes del mundo. Simple, claro y con un código legible, Python es el lenguaje por excelencia para la programación web y la ciencia de datos. Aprende este lenguaje a partir de proyectos prácticos que harás desde cero.

Curso de Python 2019
Curso de Python 2019

Curso de Python 2019

Python es una pieza fundamental de varios sistemas de software más importantes del mundo. Simple, claro y con un código legible, Python es el lenguaje por excelencia para la programación web y la ciencia de datos. Aprende este lenguaje a partir de proyectos prácticos que harás desde cero.