Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Introducción a los Decoradores | Decorators
course content

Contenido del Curso

Intermediate Python: Arguments, Scopes and Decorators

Introducción a los DecoradoresIntroducción a los Decoradores

Hablemos de los decoradores. Tenga en cuenta que los decoradores pueden ser un tema difícil para los principiantes. Examinaremos los decoradores en detalle, paso a paso, explicando cómo funcionan. Puede resultar difícil de entender al principio. ¿Estás preparado para afrontar estos retos? ¡Para eso estás aquí!

Los Decoradores son funciones que añaden funcionalidad extra a otra función, utilizando cerramientos. Aquí tienes un ejemplo de cómo funciona un decorador:

En este ejemplo, la función decorator() toma otra función como argumento, define una función wrapper(), encierra la función dada dentro de wrapper(), y devuelve wrapper(). El funcionamiento de un decorador consta de tres pasos:

    1. Tomar una función como argumento.
  1. Encerrar esa función dentro de una nueva función definida (envoltorio).
  2. Devolver la función envoltorio, que ahora encierra la función original.

La función wrapper() contiene la lógica principal del decorador e invoca la función con los parámetros dados. La función add() es reasignada por la función wrapper() devuelta por decorator(), que ahora contiene la función add() incluida.

  1. El intérprete de Python primero lee y define la función decorador. No ejecuta ningún código dentro del decorador en este punto; sólo toma nota de que hay una función llamada decorador.
  2. A continuación, define la función add. Al igual que decorator, esta función tampoco se ejecuta todavía, sólo se define.
  3. Después de definir add, se ejecuta la siguiente línea add = decorator(add). Aquí es donde se llama por primera vez a la función decorator. Recibe la función add como argumento. Dentro del decorador, define el wrapper y luego lo devuelve. Así que ahora, add ya no se refiere a la función add original, sino a la función wrapper devuelta por el decorador.
  4. Cuando se ejecuta add(14, 12), se está llamando a la función envoltorio con 14 y 12.
  • wrapper imprime "La función comienza a ejecutarse"
  • Llama a la función add original con 14 y 12, que imprime "Función add: 14 + 12" y devuelve 26.
  • Imprime "La función termina de ejecutarse".
  • wrapper devuelve 26, que se imprime con print(add(14, 12)).

Las siguientes llamadas repiten los pasos anteriores.

¿Todo estuvo claro?

Sección 5. Capítulo 1
course content

Contenido del Curso

Intermediate Python: Arguments, Scopes and Decorators

Introducción a los DecoradoresIntroducción a los Decoradores

Hablemos de los decoradores. Tenga en cuenta que los decoradores pueden ser un tema difícil para los principiantes. Examinaremos los decoradores en detalle, paso a paso, explicando cómo funcionan. Puede resultar difícil de entender al principio. ¿Estás preparado para afrontar estos retos? ¡Para eso estás aquí!

Los Decoradores son funciones que añaden funcionalidad extra a otra función, utilizando cerramientos. Aquí tienes un ejemplo de cómo funciona un decorador:

En este ejemplo, la función decorator() toma otra función como argumento, define una función wrapper(), encierra la función dada dentro de wrapper(), y devuelve wrapper(). El funcionamiento de un decorador consta de tres pasos:

    1. Tomar una función como argumento.
  1. Encerrar esa función dentro de una nueva función definida (envoltorio).
  2. Devolver la función envoltorio, que ahora encierra la función original.

La función wrapper() contiene la lógica principal del decorador e invoca la función con los parámetros dados. La función add() es reasignada por la función wrapper() devuelta por decorator(), que ahora contiene la función add() incluida.

  1. El intérprete de Python primero lee y define la función decorador. No ejecuta ningún código dentro del decorador en este punto; sólo toma nota de que hay una función llamada decorador.
  2. A continuación, define la función add. Al igual que decorator, esta función tampoco se ejecuta todavía, sólo se define.
  3. Después de definir add, se ejecuta la siguiente línea add = decorator(add). Aquí es donde se llama por primera vez a la función decorator. Recibe la función add como argumento. Dentro del decorador, define el wrapper y luego lo devuelve. Así que ahora, add ya no se refiere a la función add original, sino a la función wrapper devuelta por el decorador.
  4. Cuando se ejecuta add(14, 12), se está llamando a la función envoltorio con 14 y 12.
  • wrapper imprime "La función comienza a ejecutarse"
  • Llama a la función add original con 14 y 12, que imprime "Función add: 14 + 12" y devuelve 26.
  • Imprime "La función termina de ejecutarse".
  • wrapper devuelve 26, que se imprime con print(add(14, 12)).

Las siguientes llamadas repiten los pasos anteriores.

¿Todo estuvo claro?

Sección 5. Capítulo 1
some-alt