Verwendungshinweise für Python Decorator

Was der Dekorateur tun kann

Mit Decorator können Sie die Verarbeitung vor und nach der Ausführung einer Funktion hinzufügen.

Sobald Sie die Dekorationsfunktion definiert haben, können Sie die Verarbeitung hinzufügen, indem Sie den @ Funktionsnamen vor die zu dekorierende Funktion schreiben. Dies ist praktisch, wenn Sie viele teilweise unterschiedliche Funktionen schreiben oder eine kleine Verarbeitung hinzufügen möchten.

Dekorateur Beispiel

Im Folgenden wird die Dekorationsfunktion check_execution_time () definiert, die die Ausführungszeit der Funktion misst, und der entsprechende Funktionstest () wird dekoriert.

python


import time

def check_execution_time(func): #func ist ein dekorationsziel
    def wrapper(*args, **kwargs): #Das Argument zum Dekorationsziel geht hier
        time1 = time.time() #Zeit vor der Ausführung
        
        res = func(*args, **kwargs) #Führen Sie die hier empfangene Funktion aus
        
        time2 = time.time() #Zeit nach der Ausführung
        erapsed_time = time2 - time1 #Berechnen Sie die Ausführungszeit
        return res, erapsed_time #Gibt das Ausführungsergebnis zurück
    return wrapper

@check_execution_time #Set Dekorateur
def test(n): #Zu dekorierende Funktionen
    sum_n = 0
    for k in range(n):
        sum_n += k
    return sum_n

sum_n, erapsed_time = test(1000000)
print('sum_k: %d' % sum_n)
print('erapsed_time: %1.3f' % erapsed_time)

output


sum_k: 499999500000
erapsed_time: 0.052

Lass es uns versuchen!

Recommended Posts

Verwendungshinweise für Python Decorator
Hinweise zur Verwendung des Python-Standards unittest
Python-Scraping-Memo
Hinweis: Python-Dekorator
Python lernen note_000
Python-Lernnotizen
concurrent.futures Verwendungshinweise
Python-Anfängernotizen
Python C ++ Notizen
Python lernen note_005
Python-Grammatiknotizen
Python Library Hinweis
Python persönliche Notizen
Python-Funktionsdekorateur
Python Pandas Memo
Python lernen note_001
Python-Lernnotizen
Installationshinweise zu Python3.4
fehlende Ganzzahlen Python persönliche Notizen
Hinweise zur Entwicklung von Python-Paketen
Verwendung von Python-Einheimischen ()
Python-IP-Adresse Paket Memo
Notizen im Python Pickle-Format
Erstes Python-Memo
Matlab => Python-Migrationsnotizen
Hinweise zur Python3-Zuweisung
Hinweise zur Verwendung von Python-Unterprozessen
Python-Dekorator-Operationsnotiz
Ich habe Python> Decorator ausprobiert
Python versuchen / außer Memo
Hinweise zur Python-Framework-Flasche
Python-Memo mit perl-ternärem Operator
[Python] Richtige Verwendung der Karte
Python-Notizen, die Sie bald vergessen sollten
Python-Notizen zur Verwendung von Perl-Spezialvariablen
Python-Theorie regulärer Ausdruck Anmerkungen
Python Tkinter Memo (für mich)
Bequeme Hinweise zur Verwendung von Diff-Befehlen
[Python] Hinweise zur Datenanalyse
Lernnotizen zur Python-Datenanalyse
Hinweise zur Installation von Python auf Ihrem Mac
Beispiel für Funktionen höherer Ordnung (Dekoratoren) in Python
Beispiel für die Verwendung von Python Pickle
Grundlegende Verwendung von Python-F-String
Holen Sie sich Evernote-Notizen in Python
[Python] Richtige Verwendung von Join
Hinweise zur Installation von Python unter CentOS
Hinweise zu Python- und Wörterbuchtypen
Dekorateur 1
Python
Minimale Grammatiknotizen zum Schreiben von Python
[Einführung in die Udemy Python3 + -Anwendung] 57. Decorator
Hinweise zur Verwendung von MeCab aus Python
[Python] Was ist @? (Über Dekorateure)
Persönliche Notizen für die Python-Bildverarbeitung
Persönliche Notizen zur Vorverarbeitung von Python Pandas-Daten
Typisierungsautomatisierungsnotiz von Python-Anfängern