notes d'utilisation du décorateur python

Ce que le décorateur peut faire

Vous pouvez utiliser Decorator pour ajouter un traitement avant et après l'exécution d'une fonction.

Une fois que vous avez défini la fonction de décorateur, vous pouvez ajouter un traitement en écrivant simplement le nom de la fonction @ avant la fonction que vous souhaitez décorer, ce qui est pratique lorsque vous souhaitez écrire un grand nombre de fonctions partiellement différentes ou ajouter un peu de traitement.

exemple de décorateur

Ci-dessous, la fonction décoratrice check_execution_time () qui mesure le temps d'exécution de la fonction est définie, et la fonction test () appropriée est décorée.

python


import time

def check_execution_time(func): #func est une cible de décoration
    def wrapper(*args, **kwargs): #L'argument de la cible décorer va ici
        time1 = time.time() #Temps avant l'exécution
        
        res = func(*args, **kwargs) #Exécutez la fonction reçue ici
        
        time2 = time.time() #Temps après l'exécution
        erapsed_time = time2 - time1 #Calculer le temps d'exécution
        return res, erapsed_time #Renvoie le résultat de l'exécution
    return wrapper

@check_execution_time #Décorateur de décor
def test(n): #Fonctions à décorer
    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

Essayons!

Recommended Posts

notes d'utilisation du décorateur python
Remarques sur l'utilisation du test unittest standard Python
Mémo de raclage Python
Remarque: décorateur Python
Note d'apprentissage Python_000
Notes d'apprentissage Python
concurrent.futures Notes d'utilisation
Notes de débutant Python
notes de python C ++
Note d'apprentissage Python_005
Notes de grammaire Python
Note sur la bibliothèque Python
notes personnelles python
Décorateur de fonction Python
mémo pandas python
Note d'apprentissage Python_001
notes d'apprentissage python
Notes d'installation de Python3.4
notes personnelles en python manquantes
Notes de développement de package Python
Utilisation des locaux Python ()
Mémo du package d'adresse IP Python
Notes sur le format Python Pickle
Premier mémo divers sur Python
Matlab => Notes de migration Python
Remarques sur l'affectation Python3
Notes sur l'utilisation de sous-processus Python
Mémo d'opération de décorateur Python
J'ai essayé Python> décorateur
Python essayer / sauf mémo
Notes sur le flacon de framework Python
mémo python utilisant l'opérateur perl-ternaire
[Python] Utilisation correcte de la carte
Notes Python à oublier bientôt
notes python pour l'utilisation de variables spéciales perl
Notes sur l'expression régulière de la théorie Python
Mémo Python Tkinter (pour moi)
Remarques pratiques sur l'utilisation de la commande diff
[Python] Notes sur l'analyse des données
Notes d'apprentissage sur l'analyse des données Python
Remarques sur l'installation de Python sur votre Mac
Exemple de fonctions d'ordre supérieur (décorateurs) en Python
Exemple d'utilisation de pickle Python
Utilisation basique de la f-string Python
Obtenez des notes Evernote en Python
[Python] Utilisation correcte de la jointure
Remarques sur l'installation de Python sur CentOS
Notes sur Python et les types de dictionnaire
Décorateur 1
Python
Notes de grammaire minimales pour écrire Python
[Présentation de l'application Udemy Python3 +] 57. Décorateur
Remarques sur l'utilisation de MeCab depuis Python
[Python] Qu'est-ce que @? (À propos des décorateurs)
Notes personnelles pour le traitement d'images python
Notes personnelles de prétraitement des données Python Pandas
Mémo d'automatisation de saisie par Python débutant