Python utilise la version 3.6.0.
À stop_watch.py
print(f"{func.__name__}Est{elapsed_time}Ça a pris une seconde")
Cependant, cette notation ne fonctionne que si elle est 3.6.0 ou supérieure. Veuillez réécrire le cas échéant selon votre propre version. Les autres parties ne sont pas confirmées, mais je pense que cela fonctionnera avec 3x.
Pour mesurer le temps avec Python, utilisez essentiellement la méthode de l'article suivant.
[Python] Mesurer et afficher le temps de traitement python> Traitement de la mesure du temps> time.time () --start_time Fonction qui mesure le temps de traitement d'une méthode avec python
Vous pouvez également mesurer le temps avec la méthode ci-dessus. Cependant, la logique que vous souhaitez écrire et la mesure du temps sont combinées.
Par conséquent, il existe un moyen intelligent de séparer complètement la logique et la mesure du temps, je vais donc le partager.
stop_watch.py
from functools import wraps
import time
def stop_watch(func) :
@wraps(func)
def wrapper(*args, **kargs) :
start = time.time()
result = func(*args,**kargs)
elapsed_time = time.time() - start
print(f"{func.__name__}Est{elapsed_time}Ça a pris une seconde")
return result
return wrapper
Le code ci-dessus est le processus pour mesurer le temps.
Un décorateur est utilisé pour ce code.
Le traitement réel est stocké dans func
, l'heure de début de la mesure est stockée dans start
, et le temps nécessaire pour le traitement est stocké dans ʻelaspsed_time`.
Si vous souhaitez en savoir plus sur les décorateurs, veuillez écrire en détail dans cet article.
12 étapes pour comprendre les décorateurs Python
test.py
from stop_watch import stop_watch
@stop_watch
def func() :
j=0
for i in range(99999999) :
j+=i
print(j)
func()
L'utilisation réelle est comme ça.
Écrivez simplement @ stop_watch
au-dessus de la fonction dont vous voulez mesurer le temps.
(* On suppose que le stop_watch.py
ci-dessus et le test.py
ci-dessus sont dans le même répertoire (dossier). S'ils sont différents, veuillez réécrire le processus d'importation comme il convient)
Le résultat est,
result
4999999850000001
func vaut 6.330682277679443 Cela a pris 2 secondes
Est affiché. Le résultat de la fonction dont vous souhaitez mesurer le temps s'affiche sur la première ligne. Le nom de la fonction dont vous souhaitez mesurer le temps et le temps nécessaire pour exécuter cette fonction sont affichés sur la deuxième ligne.
Cela n'a rien à voir avec la logique, mais si vous voulez voir un résultat, le décorateur brillera. Cette fois, il s'agissait de mesurer le temps. J'espère que cela aide quelque chose.
Recommended Posts