Vous pourrez mesurer le temps en utilisant avec. Il peut être utilisé pour mesurer le temps avec Kaggle, etc.
Utilisé dans Mercari Competition 1st Code ..
Écrivez simplement @contextmanager juste avant de définir la fonction que vous souhaitez utiliser comme gestionnaire de contexte.
Lorsque le timer est appelé, l'heure initiale est stockée dans t0 et yeild quitte la fonction temporaire. Une fois le traitement de time.sleep (1) terminé, il retourne à nouveau au temporisateur et sort la différence par rapport à l'heure initiale.
qiita.rb
from contextlib import contextmanager
import time
@contextmanager
def timer(name):
t0 = time.time()
print("start")
yield
print("end")
print(f'[{name}] done in {time.time() - t0:.0f} s')
with timer('process train'):
time.sleep(1)
Si @contextmanager n'est pas décrit, le temporisateur ne peut pas fonctionner comme gestionnaire de contexte et une erreur se produira.
[avec minutes et gestionnaire de contexte] (https://docs.python.org/ja/3/reference/datamodel.html#context-managers "Qiita") Le gestionnaire de contexte gère le traitement d'entrée et de sortie requis pour exécuter des blocs de code.
Comme le montre l'exemple ci-dessous, la classe de gestionnaire de contexte décrit le processus de démarrage et le processus de fin. Par conséquent, si vous en faites un gestionnaire de contexte avec @contextmanager, le timer sera appelé au début et à la fin. Si @contextmanager n'est pas décrit, une erreur se produit car enter n'est pas défini. Référence
Recommended Posts