Heim > Backend-Entwicklung > Python-Tutorial > Python-Dekoratoren: Das Geheimnis für saubereren Code!

Python-Dekoratoren: Das Geheimnis für saubereren Code!

DDD
Freigeben: 2025-01-06 21:09:41
Original
417 Leute haben es durchsucht

Python Decorators: The Secret Sauce for Cleaner Code !

Python-Dekoratoren verstehen – ein Wrapper nach dem anderen!

Hallo zusammen!
Ich hoffe, es geht dir gut!
Sind Sie jemals auf Python-Dekoratoren gestoßen und dachten: „Oh nein, das ist kein weiteres kompliziertes Thema!“ Nun, ich sage Ihnen, Dekorateure sind nicht so gruselig, wie sie aussehen. Tatsächlich sind sie, sobald Sie den Dreh raus haben, wie ein Sahnehäubchen auf Ihren Python-Kenntnissen.

Lassen Sie es uns Schritt für Schritt aufschlüsseln und uns (Wortspiel beabsichtigt) mit den Dekorateuren beschäftigen.

Was sind Python-Dekoratoren?

Ein Dekorator in Python ist wie ein magisches Werkzeug, mit dem Sie die Funktionalität einer Funktion optimieren oder erweitern können, ohne ihren Code zu berühren. Es ist, als würden Sie Ihrem Instagram-Beitrag Filter hinzufügen – Sie ändern nicht das Foto; Du verbesserst es einfach.

Stellen Sie sich vor, Sie haben eine Funktion, die etwas druckt. Was ist, wenn Sie möchten, dass vor und nach der Ausführung eine Nachricht protokolliert wird? Anstatt die Funktion neu zu schreiben, verwenden Sie einen Dekorator, um diese Funktionalität hinzuzufügen.

Ein einfaches Beispiel

Hier ist ein kurzes Beispiel:

def my_decorator(func):  
    def wrapper():  
        print("Starting the function...")  
        func()  
        print("Function has ended!")  
    return wrapper  

@my_decorator  
def say_hello():  
    print("Hello, world!")  

say_hello()
Nach dem Login kopieren

Und die Ausgabe?

Starting the function...  
Hello, world!  
Function has ended!
Nach dem Login kopieren

Aufschlüsseln

Lassen Sie uns Zeile für Zeile durchgehen:

1.** def my_decorator(func)**:Dies ist die Dekoratorfunktion. Es benötigt eine andere Funktion (func) als Eingabe.

2.def wrapper(): Innerhalb des Dekorators definieren wir eine neue Funktion namens Wrapper, die zusätzliches Verhalten hinzufügt.

  1. func(): Dies ruft die ursprüngliche Funktion (say_hello) auf.

  2. @my_decorator: Das @-Symbol ist eine Abkürzung für die Anwendung des Decorators auf die Funktion. Es ist dasselbe wie das Schreiben von:

say_hello = my_decorator(say_hello)

Warum sind Dekorateure nützlich?

Sehen wir uns ein reales Szenario an. Angenommen, Sie möchten jeden Aufruf einer Funktion protokollieren. Dafür können Sie einen Dekorateur schreiben:

def log(func):  
    def wrapper(*args, **kwargs):  
        print(f"Calling {func._name_}...")  
        return func(*args, **kwargs)  
    return wrapper  

@log  
def add(a, b):  
    return a + b  

print(add(3, 5))
Nach dem Login kopieren

Dies gibt Folgendes aus:

Calling add...  
8
Nach dem Login kopieren

Einfach, nicht wahr? Anstatt in jeder Funktion manuell Druckanweisungen hinzuzufügen, verwenden Sie nur einen Dekorator.

Anwendungsfälle aus der Praxis

So können Dekorateure in praktischen, alltäglichen Programmierszenarien für Sie arbeiten:

1. Protokollieren Sie alles, was Ihre Funktionen tun

Haben Sie sich jemals gefragt, was genau Ihre Funktionen vorhaben oder welche Daten sie verarbeiten? Mit Dekoratoren können Sie bei jedem Aufruf einer Funktion automatisch protokollieren, welche Eingaben sie erhält und was sie zurückgibt.

Zum Beispiel: Sie erstellen eine App und möchten nachverfolgen, wie oft eine Funktion verwendet wird. Ein Dekorateur kann jeden Aufruf protokollieren, ohne die Funktion selbst zu überladen.

2. Messfunktion Geschwindigkeit

Wie lange dauert die Ausführung Ihrer Funktion? Verlangsamt es Ihr Programm? Anstatt jede einzelne Funktion manuell zu steuern, kann ein Dekorateur die Ausführungszeit Ihrer Funktionen automatisch messen.

Zum Beispiel: Sie optimieren ein Datenverarbeitungsskript und möchten Engpässe finden. Ein Dekorateur kann Ihnen sagen, wie lange jeder Teil des Prozesses dauert.

3. Benutzerzugriff verwalten
Wenn Sie eine App oder eine Website erstellen, müssen Sie manchmal bestimmte Funktionen auf bestimmte Benutzer beschränken – etwa Administratoren oder angemeldete Benutzer. Ein Dekorateur kann diese Prüfungen problemlos durchführen.
**
Beispiel: **Wenn ein Benutzer versucht, auf ein Admin-Dashboard zuzugreifen, kann ein Dekorateur überprüfen, ob er über die richtigen Berechtigungen verfügt, bevor er ihn hereinlässt.

4. Aufgaben mit Leichtigkeit wiederholen

Einige Funktionen führen Aufgaben aus, die in verschiedenen Teilen Ihres Programms gleich sind – etwa das Speichern von Daten in einer Datenbank oder das Senden von Benachrichtigungen. Ein Dekorateur kann sicherstellen, dass diese Aufgaben einheitlich und mit minimaler Wiederholung erledigt werden.

Zum Beispiel:Stellen Sie sich vor, Sie speichern Daten in mehreren Tabellen in einer Datenbank. Ein Dekorateur kann jedem Speichervorgang Konsistenz und Fehlerbehandlung hinzufügen.

Eine letzte Sache

Wenn sich Dekorateure immer noch etwas knifflig fühlen, machen Sie sich keine Sorgen! Wie bei allem anderen in Python gilt: Übung macht den Meister. Fangen Sie klein an, versuchen Sie, ein paar Dekoratoren zu schreiben, und schon bald werden Sie sie wie ein Profi verwenden.

Was halten Sie von Dekorateuren? Lassen Sie es mich in den Kommentaren wissen – oder noch besser: Sagen Sie mir, welche anderen Python-Konzepte ich Ihrer Meinung nach näher erläutern soll!

Das ist es für den Moment. Machen Sie weiter, versuchen Sie, einige Funktionen zu verpacken, und bringen Sie Ihren Python-Code zum Strahlen!
Viel Spaß beim Codieren!
Ich sende all die guten Vibes aus meiner Ecke des Internets an deine!

Das obige ist der detaillierte Inhalt vonPython-Dekoratoren: Das Geheimnis für saubereren Code!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage