@-Symbol in Python
-
Verwenden Sie das
@
-Symbol in Decorators in Python -
Verwenden Sie das Symbol
@
, um Matrizen in Python zu multiplizieren
Der häufigste Anwendungsfall des @
-Symbols in Python sind Decorators. Mit einem Decorator können Sie das Verhalten einer Funktion oder Klasse ändern.
Das Symbol @
kann auch als mathematischer Operator verwendet werden, da es in Python Matrizen multiplizieren kann. In diesem Tutorial lernen Sie, das Symbol @
von Python zu verwenden.
Verwenden Sie das @
-Symbol in Decorators in Python
Ein Decorator ist eine Funktion, die eine Funktion als Argument akzeptiert, ihr einige Funktionalitäten hinzufügt und die modifizierte Funktion zurückgibt.
Sehen Sie sich beispielsweise den folgenden Code an.
def decorator(func):
return func
@decorator
def some_func():
pass
Dies entspricht dem folgenden Code.
def decorator(func):
return func
def some_func():
pass
some_func = decorator(some_func)
Ein Dekorateur modifiziert die ursprüngliche Funktion, ohne irgendein Skript in der ursprünglichen Funktion zu ändern.
Sehen wir uns ein praktisches Beispiel für das obige Code-Snippet an.
def message(func):
def wrapper():
print("Hello Decorator")
func()
return wrapper
def myfunc():
print("Hello World")
Das Symbol @
wird mit dem Namen der Decorator-Funktion verwendet. Es sollte oben auf die Funktion geschrieben werden, die dekoriert werden soll.
@message
def myfunc():
print("Hello World")
myfunc()
Ausgang:
Hello Decorator
Hello World
Das obige Decorator-Beispiel funktioniert genauso wie dieser Code.
def myfunc():
print("Hello World")
myfunc = message(myfunc)
myfunc()
Ausgang:
Hello Decorator
Hello World
Einige häufig verwendete Decorators in Python sind @property
, @classmethod
und @staticmethod
.
Verwenden Sie das Symbol @
, um Matrizen in Python zu multiplizieren
Ab Python 3.5 kann das Symbol @
auch als Operator verwendet werden, um eine Matrixmultiplikation in Python durchzuführen.
Das folgende Beispiel ist eine einfache Implementierung der Multiplikation von Matrizen in 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)
Ausgang:
[[25, 29], [42, 32]]
Das ist es. Die @
-Symbole in Python werden in Decorators und Matrixmultiplikationen verwendet.
Sie sollten jetzt verstehen, was das @
-Symbol in Python bewirkt. Wir hoffen, dass Sie dieses Tutorial hilfreich finden.