Enstringr múltiples decoradores en Python

En este artículo, intentaremos comprender el concepto básico detrás de h

¿Qué es el decorador en Python?

Un decorador es una función que puede tomar una función como argumento y extender su funcionalidad y devolver una función modificada con funcionalidad extendida.

 

Entonces, aquí en esta publicación, vamos a aprender sobre el enstringmiento de decoradores. Enstringr decoradores significa aplicar más de un decorador dentro de una función. Python nos permite implementar más de un decorador a una función. Hace que los decoradores sean útiles para los bloques de construcción reutilizables, ya que acumula varios efectos juntos. También se conoce como decoradores anidados en Python. también veremos ejemplos de decoradores de Python.

Sintaxis de decorador en python

@decor1
@decor
def num():
    statement(s)    

Ejemplo 1: 

Para la función num() estamos aplicando 2 funciones de decorador. Primero trabajará el decorador interior y luego el decorador exterior.

Python3

# code for testing decorator chaining
def decor1(func):
    def inner():
        x = func()
        return x * x
    return inner
 
def decor(func):
    def inner():
        x = func()
        return 2 * x
    return inner
 
@decor1
@decor
def num():
    return 10
 
print(num())

Producción:

400

Ejemplo 2:

Para la función sayhellogfg() y saygfg, estamos aplicando 2 funciones de decorador. Primero funcionará el decorador interno (decor1) y luego el decorador externo (decor2), y después de eso, se imprimirán los datos de la función.

Python3

         
def decor1(func):
        def wrap():
               print("************")
               func()
               print("************")
        return wrap
def decor2(func):
        def wrap():
               print("@@@@@@@@@@@@")
               func()
               print("@@@@@@@@@@@@")
        return wrap
     
@decor1
        
@decor2
def sayhellogfg():
         print("Hello")
def saygfg():
         print("GeekforGeeks")
         
sayhellogfg()
saygfg()

Producción:

************
@@@@@@@@@@@@
Hello
@@@@@@@@@@@@
************
GeekforGeeks

También puede obtener información sobre Genetator en Python .

Publicación traducida automáticamente

Artículo escrito por pandeydeepa447 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *