2017-05-13 1 views
1

La solution populaire pour le profilage de ligne Python semble être kernprof -l script.py, ce qui nécessite l'ajout de décorateurs "@profile" aux fonctions que vous voulez profiler. Exécuter le même code sans python script.py va se plaindre "nom de profil 'non défini", donc vous devez commenter @profile lignes. Quelle est une bonne solution pour basculer entre les modes «profil» et non-profil sans avoir à commenter ces lignes?commentateur @profile decorators lors du profilage de ligne

Répondre

2

Vous pouvez essayer d'ajouter quelque chose comme ça en haut de votre script:

try: 
    profile # throws an exception when profile isn't defined 
except NameError: 
    profile = lambda x: x # if it's not defined simply ignore the decorator. 

De cette façon, vous définissez la fonction profile comme décorateur no-op si elle n'est pas défini.