¡Este artículo lo lleva a comprender a los decoradores de Python!

  En Python, una función es una estructura muy flexible, podemos asignarla a una variable, pasarla como argumento a otra función o usarla como salida de una función. El decorador en Python también es una función, que es una función de orden superior diseñada para mejorar la función de la función y hacerla más flexible y escalable.

  ¿Qué son los decoradores?

  Un decorador es una característica del lenguaje Python que permite a los usuarios modificar de forma dinámica y transparente el comportamiento de la función o aumentar la funcionalidad de la función sin modificar el código de la función original. Un decorador es esencialmente una función que acepta otras funciones como argumentos y devuelve una nueva función.

  Sintaxis de decoradores

  @decorador

  def foo()

  aprobar

  Entre ellos, decorador es una función decoradora y foo es una función ordinaria. Al usar la sintaxis @decorator, el intérprete de Python pasará automáticamente la función foo a la función decoradora y asignará el valor de retorno de la función decoradora a la función foo, de modo que podamos llamar a la función transformada llamando a la función foo.

  Escenarios de aplicación de decoradores.

  Los escenarios de aplicación de los decoradores son muy extensos e incluyen, entre otros, los siguientes aspectos:

  1. Registro

  Podemos usar el decorador para registrar el registro de ejecución de la función para una mejor depuración y análisis.

  def registro(función):

  def arapper(*args,**kwargs):

  print(f"caaling {func._name_} with args={args},kwargs={kwargs}")

  función de retorno(*args, **kwargs)

  envoltorio de devolución

  @registro

  def suma(x,y):

  volver x + y

  add(1,2) #output llamando add with args=(1,2),kwargs={}

  # salida 3

  2. Autenticación y autorización

  Podemos implementar funciones de autenticación y autorización de usuarios a través de decoradores para garantizar que solo los usuarios autorizados puedan acceder a recursos específicos.

  def autenticar(función):

  envoltorio def(*args, **kwargs):

  si está autenticado:

  función de retorno(*args, **kwargs)

  demás:

  generar excepción ("no autorizado")

  envoltorio de devolución

  @autenticar

  def get_secret_date():

  aprobar

  3. caché

  Podemos implementar la función de almacenamiento en caché a través de decoradores para reducir la sobrecarga computacional y mejorar el rendimiento.

  caché = {}

  def memorizar(función):

  envoltura de definición(*argumentos):

  si argumentos en caché:

  devolver caché [argumentos]

  demás:

  resultado = func(*argumentos)

  caché[argumentos] = resultado

  resultado devuelto

  envoltorio de devolución

  @memoizar

  def fib(n)

  si n < 2

  regreso m

  demás:

  devolver fib(n-1) + fib(n-2)

Supongo que te gusta

Origin blog.csdn.net/oldboyedu1/article/details/131704840
Recomendado
Clasificación