@ Símbolo en Python

Rohan Timalsina 21 junio 2023
  1. Use el símbolo @ en decoradores en Python
  2. Usa el símbolo @ para multiplicar matrices en Python
@ Símbolo en Python

El caso de uso más común del símbolo @ en Python es en los decoradores. Un decorador te permite cambiar el comportamiento de una función o clase.

El símbolo @ también se puede utilizar como operador matemático, ya que puede multiplicar matrices en Python. Este tutorial le enseñará a usar el símbolo @ de Python.

Use el símbolo @ en decoradores en Python

Un decorador es una función que acepta una función como argumento, le agrega algunas funcionalidades y devuelve la función modificada.

Por ejemplo, vea el siguiente código.

def decorator(func):
    return func


@decorator
def some_func():
    pass

Esto es equivalente al siguiente código.

def decorator(func):
    return func


def some_func():
    pass


some_func = decorator(some_func)

Un decorador modifica la función original sin alterar ningún guión en la función original.

Veamos un ejemplo práctico del fragmento de código anterior.

def message(func):
    def wrapper():
        print("Hello Decorator")
        func()

    return wrapper


def myfunc():
    print("Hello World")

El símbolo @ se utiliza con el nombre de la función decoradora. Debe escribirse en la parte superior de la función que se decorará.

@message
def myfunc():
    print("Hello World")


myfunc()

Producción :

Hello Decorator
Hello World

El ejemplo del decorador anterior hace el mismo trabajo que este código.

def myfunc():
    print("Hello World")


myfunc = message(myfunc)
myfunc()

Producción :

Hello Decorator
Hello World

Algunos decoradores de uso común en Python son @property, @classmethod y @staticmethod.

Usa el símbolo @ para multiplicar matrices en Python

Desde Python 3.5, el símbolo @ también se puede usar como operador para realizar la multiplicación de matrices en Python.

El siguiente ejemplo es una implementación simple de multiplicar matrices en Python.

class Mat(list):
    def __matmul__(self, B):
        A = self
        return Mat(
            [
                [
                    sum(A[i][k] * B[k][j] for k in range(len(B)))
                    for j in range(len(B[0]))
                ]
                for i in range(len(A))
            ]
        )


A = Mat([[2, 5], [6, 4]])
B = Mat([[5, 2], [3, 5]])
print(A @ B)

Producción :

[[25, 29], [42, 32]]

Eso es todo. Los símbolos @ en Python se utilizan en decoradores y multiplicaciones de matrices.

Ahora debería entender lo que hace el símbolo @ en Python. Esperamos que este tutorial le resulte útil.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Artículo relacionado - Python Symbol