Búsqueda de sitios web

Sintaxis de pastel (@) en Python


El método Pi o sintaxis Pi se utiliza para decorar una función o método en Python y se conoce como decorador. El método circular se utiliza para modificar el comportamiento de una función o método.

La sintaxis circular (@) se puede utilizar simplemente colocando el símbolo @ y el nombre de la función decoradora encima de la definición de la función. Cuando se invoca la función, se le indica a Python que use el decorador.

Pie Syntax (@) tiene la ventaja de permitir una mayor adaptabilidad en las llamadas a funciones. Cuando trabaja con estructuras de datos complicadas o cuando necesita ingresar una cantidad variable de argumentos, la sintaxis circular (@) le permite pasar muchos parámetros como un solo argumento. Como resultado, su código se volverá más flexible y específico para cada situación.

Sintaxis

@<my_decorator>

Método 1: usar el decorador de funciones

Ejemplo 1

def my_decor(fun):
   print("Welcome")
   fun()
   print("Tutorialspoint")

@my_decor
def main():
   print("to")

if __name__ == 'main':
   main()

Producción

Welcome
to
Tutorialspoint

En este código, se ha creado una función decoradora llamada my_decor. Esta función hereda y maneja otra función llamada fun.

En esta función de decorador, se imprime un mensaje de bienvenida escribiendo primero "Bienvenido". Luego se llama a fun(), que ejecuta la función divertida. Finalmente se imprime "Tutorialspoint".

En el código anterior, una función llamada main está decorada por el decorador my_decor. Entonces, la función principal se pasa a my_decor y la función my_decor la recibe y la maneja. El mensaje de bienvenida se imprime mediante la función my_decor, luego se llama a la función principal y finalmente se imprime "Tutorialspoint".

Si se verificará __nombre__ para ver si el código solo se ejecuta como programa principal. __name__ será igual a "main" cuando main sea el programa, por lo que se llama a la función principal.

Ejemplo 2

def my_decor1(fun):   # 1st decorator 
   print("---reading---")

def my_decor2(fun):   # 2nd decorator
   print("---Visit---")
   fun()
   print("---for---")

@my_decor1
@my_decor2
def main():
   print("---Tutorialspoint---")

if __name__ == 'main':
   main()

Producción

---Visit---
---Tutorialspoint---
---for---
---reading---

En este programa, proporcionamos tres funciones diferentes: my_decor1, my_decor2 y main. Estas obras se utilizan especialmente para la decoración.

La primera función es my_decor1, en la que imprimimos el mensaje "--reading---". Se ejecuta antes de la segunda función my_decor2.

La segunda función es my_decor2, en la que imprimimos el mensaje " ---Visita---". Luego llamamos a fun(), que llamará a main. Se ejecuta la declaración impresa de main "---Tutorialspoint---". Luego imprimimos " ---for---".

La función principal está decorada de dos formas. La primera decoración pertenece a my_decor2 y la segunda decoración pertenece a my_decor1. Significa que para decorar la función principal, primero se ejecutará la función my_decor2 y luego se ejecutará la función my_decor1. Al final se imprimirá el resultado.

Método 2: mediante el decorador de métodos de clase

Ejemplo 1

class Subject:
   count = 0

   def __init__(self, sub):
      self.sub = sub
      Subject.count += 1

   @classmethod      #class method decorator(@)
   def get_count(dec):
      return dec.count

Subject1 = Subject("Python")
Subject2 = Subject("DBMS")
Subject3 = Subject("HTML")

print(Subject.get_count())

Producción

3

En este código tenemos una clase llamada "Asunto" que tiene una variable local "recuento". Hay un método llamado __init__() que se llama cuando se crea un objeto. Este método establece la variable miembro "sub" devuelta por los dos métodos e incrementa "Subject.count" en 1.

Hay un método de clase llamado get_count() que devuelve la variable miembro "recuento" de la clase "Asunto". A continuación, creamos tres objetos "Asunto" (Asunto1, Asunto2, Asunto3) y les asignamos variables miembro "Python", "DBMS" y "HTML". Luego imprimimos "Subject.get_count()" que nos dará el resultado "3".

Ejemplo 2

class Team:
   count = 0

   def __init__(self, tm):
      self.tm = tm
      Team.count += 1

   @classmethod     #class method decorator(@)
   def get_count(team):
      return team.count

Team_1 = Team("CSK")
Team_2 = Team("KKR")
Team_3 = Team("RCB")
Team_4 = Team("LSG")

print(Team.get_count())

Producción

4

En este código, hemos creado una clase llamada 'Equipo'. Esta clase tiene un número espacial llamado 'count' que se inicializa en 0. Además, esta clase tiene un método interno llamado 'init' que toma un parámetro espacial llamado 'tm' y los almacena en 'self.tm'. Además, este método se utiliza para incrementar 'Team.count'.

A continuación, hemos creado un '@classmethod' llamado 'get_count' que toma un parámetro espacial llamado 'team' como parámetro. Este método devuelve 'team.count'. En el siguiente paso, hemos creado cuatro combinaciones desde 'Equipo_1' hasta 'Equipo_4', donde cada combinación tiene su propio nombre ('CSK', 'KKR', 'RCB', 'LSG' en ese orden).

Finalmente, hemos utilizado 'print(Team.get_count())' que llama al método 'get_count' utilizado por la clase 'Team'. Esto nos da el número total de combinaciones creadas en la clase 'Equipo'.

Conclusión

En conclusión, la sintaxis (@) en Python es que es un decorador utilizado para modificar o modificar el comportamiento de una función. Permite que una función sea editada por otra función. (@) El decorador lo utiliza el usuario para cambiar el comportamiento predeterminado, cambiar el comportamiento de la clase, el registro, el almacenamiento en caché, etc. Puede ser una clase, un argumento, una función o un decorador definido por el usuario decorado con un decorador con el signo @ arriba. la función.

Artículos relacionados: