Einführung
Beim Lernen von Python werden Sie in Code gelegentlich „@“ (At-Zeichen) sehen. Besonders Dekoratoren (wie @staticmethod
) oder der @
-Operator, der in Matrixoperationen verwendet wird, sind typische Beispiele. Für Personen, die es zum ersten Mal sehen, kann es jedoch Fragen aufwerfen: „Was bedeutet dieses Symbol?“
In diesem Artikel erklären wir detailliert die Rolle und Verwendung des „@“ in Python. Konkret stellen wir die Verwendungsmethoden für Dekoratoren, Matrixoperationen, die query()-Methode von pandas usw. vor und erklären sie so, dass sie auch für Anfänger verständlich sind.
Was ist „@“ in Python?
In Python ist „@“ hauptsächlich für „Dekorator“ verwendet. Ein Dekorator ist ein Mechanismus, um das Verhalten von Funktionen oder Methoden zu ändern. Zusätzlich wurde ab Python 3.5 der „@“-Operator eingeführt, um das Produkt von Matrizen prägnant darzustellen. Darüber hinaus gibt es in der pandas.query()-Methode eine Verwendung von „@“, um Variablen zu referenzieren.
Die Verwendungsbeispiele von „@“ werden aus den folgenden drei Perspektiven erklärt.
- Dekorator (Decorator): Fügt Funktionen oder Klassen spezifische Funktionalitäten hinzu.
- Matrixoperationen (@-Operator): Berechnet das Produkt von Matrizen mit NumPy usw.
- pandas.query()-Methode: Referenziert Variablen innerhalb von Abfragen in DataFrames.
Was ist ein Dekorator (Decorator)?
Grundlagen des Dekorators
Ein Dekorator ist ein Mechanismus, der das Verhalten einer Funktion oder Methode ändert, indem ‚@‘ davor platziert wird. Er wird hauptsächlich für folgende Zwecke verwendet.
- Protokollierung
- Messung der Ausführungszeit
- Einschränkung des Funktionsverhaltens (z. B. Authentifizierungsfunktion)
Syntax des Dekorators
Die grundlegende Syntax zur Verwendung von Dekoratoren in Python sieht wie folgt aus.
def my_decorator(func):
def wrapper():
print("Vor der Ausführung der Verarbeitung")
func()
print("Nach der Ausführung der Verarbeitung")
return wrapper
@my_decorator
def my_function():
print("Die Hauptfunktion wurde ausgeführt")
my_function()
Ausführungsresultat des Dekorators
Vor der Ausführung der Verarbeitung
Die Hauptfunktion wurde ausgeführt
Nach der Ausführung der Verarbeitung
Praktische Verwendungsbeispiele für Dekoratoren
Dekoratoren sind auch in der Standardbibliothek in großer Zahl enthalten. Zum Beispiel wird ‚@‘ verwendet, um Klassenmethoden oder statische Methoden zu definieren.
@classmethod
Beim Definieren einer Klassenmethode verwendet man@classmethod
.
class MyClass:
class_variable = "Klassenvariable"
@classmethod
def class_method(cls):
return f"Klassenmethode wurde aufgerufen: {cls.class_variable}"
print(MyClass.class_method())
@staticmethod
Statische Methoden verwendet man@staticmethod
.
class MyClass:
@staticmethod
def static_method():
return "Statische Methode wurde aufgerufen"
print(MyClass.static_method())
Der „@“-Operator in Matrizenoperationen
Ab Python 3.5 wurde der @
-Operator eingeführt. Dies ist ein Operator, um das Matrixprodukt knapp darzustellen.
Matrixprodukt mit NumPy
import numpy as np
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
C = A @ B
print(C)

Verwendung von ‚@‘ in der query()-Methode von pandas
In der query()
-Methode von pandas können Variablen mit @
referenziert werden.
Filterung mit Variablen
import pandas as pd
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]})
threshold = 30
# Referenzierung des Werts von threshold
filtered_df = df.query('age > @threshold')
print(filtered_df)
Zusammenfassung
- Dekoratoren werden verwendet, um das Verhalten von Funktionen oder Klassen zu ändern.
- Der „@“-Operator für Matrizenoperationen vereinfacht die Berechnung von Matrizenprodukten in NumPy usw.
- Die
query()
-Methode von pandas ermöglicht die Verwendung von „@“ für Variablenreferenzen.
Durch das Verständnis der Verwendung von „@“ und seine angemessene Nutzung wird effizienteres Python-Programmieren möglich.