Je vous prie de déboguer votre code Python et d'arrêter d'utiliser Print!

Cliquez sur " Python crawler and data mining " ci-dessus pour suivre

Répondez à " Livres " pour recevoir un total de 10 livres électroniques sur Python, du niveau débutant à avancé

à présent

journée

Poulets

soupe

Temple de Cang Cang Zhulin, les cloches sont en retard.

Je crois que la plupart des gens qui apprennent Python utiliseront certainement la fonction intégrée print () pour déboguer le code.

Ensuite, dans un grand projet, si vous utilisez également print pour déboguer votre code Python, vous constaterez que votre terminal a plusieurs sorties.

Ensuite, vous devez distinguer quel code est le résultat de la sortie de chaque ligne.

Par exemple, exécutez le programme suivant.

num1 = 30
num2 = 40 

print(num1)
print(num2)

Sortez le résultat.

30
40

Laquelle de ces sorties est num1? Lequel est encore num2?

Il n'est peut-être pas difficile de trouver deux sorties, mais que se passe-t-il s'il y a plus de cinq sorties différentes? Essayer de trouver du code lié à la sortie peut prendre du temps.

Bien sûr, vous pouvez ajouter du texte à l'instruction d'impression pour la rendre plus facile à comprendre:

num1 = 30
num2 = 40 

print("num1" num1)
print("num2" num1)

Sortez le résultat.

num1 30
num2 40

Ce résultat est facile à comprendre, mais il faut du temps pour rédiger des informations pertinentes.

Il est temps pour "Icecream" de jouer ~

01. Qu'est-ce que la crème glacée?

Icecream est une bibliothèque tierce Python qui peut rendre l'impression et le débogage plus clairs et plus clairs avec un minimum de code.

Utilisez pip pour installer la bibliothèque Icecream.

pip install icecream

Ensuite, essayons-le en imprimant la sortie de la fonction Python.

from icecream import ic 

def plus_five(num):
    return num + 5

ic(plus_five(4))
ic(plus_five(5))

Le résultat de sortie est le suivant.

ic| plus_five(4): 9
ic| plus_five(5): 10

En utilisant la glace, nous pouvons non seulement voir la sortie de la fonction, mais aussi la fonction et ses paramètres!

02. Vérifier la mise en œuvre

Si vous voulez trouver où exécuter le code, vous pouvez trouver quelle instruction a été exécutée en effectuant les opérations indiquées ci-dessous.

def hello(user:bool):
    if user:
        print("I'm user")
    else:
        print("I'm not user")

hello(user=True)

Sortez le résultat.

I'm user

En utilisant la crème glacée, vous pouvez facilement effectuer les opérations ci-dessus sans informations textuelles inutiles.

from icecream import ic 

def hello(user:bool):
    if user:
        ic()
    else:
        ic()

hello(user=True)

Le résultat de sortie est le suivant.

ic| ice_1.py:5 in hello() at 02:34:41.391

À partir du résultat de sortie, le code de la ligne 5 dans la fonction bonjour a été exécuté, mais le code de la ligne 7 n'a pas été exécuté.

03. Préfixe personnalisé

Si vous souhaitez insérer un préfixe personnalisé (tel que l'heure d'exécution du code) dans l'instruction d'impression, la glace peut également être obtenue.

from datetime import datetime
from icecream import ic 
import time
from datetime import datetime

def time_format():
    return f'{datetime.now()}|> '

ic.configureOutput(prefix=time_format)

for _ in range(3):
    time.sleep(1)
    ic('Hello')

Le résultat de sortie est le suivant.

2021-01-24 10:38:23.509304|> 'Hello'
2021-01-24 10:38:24.545628|> 'Hello'
2021-01-24 10:38:25.550777|> 'Hello'

Vous pouvez voir l'heure d'exécution du code, qui est affichée devant la sortie.

04. Obtenez plus d'informations

En plus de connaître le code lié à la sortie, vous voudrez peut-être également connaître la ligne d'exécution du code et le fichier de code.

Dans ic.configureOutput (), définissez la valeur du paramètre de includeecontext sur True.

from icecream import ic 

def plus_five(num):
    return num + 5

ic.configureOutput(includeContext=True)
ic(plus_five(4))
ic(plus_five(5))

Le résultat de sortie est le suivant.

ic| ice_test.py:7 in <module>- plus_five(4): 9
ic| ice_test.py:8 in <module>- plus_five(5): 10

On sait ici que la première sortie est exécutée par la fonction plus_five à la ligne 7 du fichier icecream_example.py.

La deuxième sortie est exécutée par la fonction plus_five à la ligne 8 du fichier de code.

Les deux opérations ci-dessus utilisent la fonction ic.configureOutput ().

En regardant le code source, nous pouvons voir qu'il y a quatre paramètres qui peuvent être définis.

  • préfixe, préfixe de sortie personnalisé

  • outputFunction, changer la fonction de sortie

  • argToStringFunction, chaîne de sérialisation de paramètre personnalisé

  • includeContext, afficher le nom du fichier, la ligne de code, les informations de fonction

05. Supprimer le code Icecream

Enfin, vous pouvez utiliser la crème glacée uniquement pour le débogage et imprimer à d'autres fins (comme une belle impression).

from icecream import ic

def plus_five(num):
    return num + 5

ic.configureOutput(includeContext=True)
ic(plus_five(4))
ic(plus_five(5))

for i in range(10):
    print(f'****** Training model {i} ******')

Sortez le résultat.

ic| ice_1.py:7 in <module>- plus_five(4): 9
ic| ice_1.py:8 in <module>- plus_five(5): 10
****** Training model 0 ******
****** Training model 1 ******
****** Training model 2 ******
****** Training model 3 ******
****** Training model 4 ******
****** Training model 5 ******
****** Training model 6 ******
****** Training model 7 ******
****** Training model 8 ******
****** Training model 9 ******

Puisque vous pouvez faire la distinction entre l'impression de débogage et l'impression jolie, il est très facile de rechercher et de supprimer toutes les instructions de débogage ic.

Après avoir supprimé tout le code de débogage, votre code Python est propre.

Pour résumer

À ce stade, vous devriez avoir appris à utiliser la crème glacée pour imprimer et déboguer.

Pour plus de fonctions, veuillez visiter "GitHub" pour plus de détails ~

https://github.com/gruns/icecream

Des milliers de rivières et de montagnes sont toujours amoureuses .

--- - --- --- --- - ---  Fin  --- - --- - --- --- - -

Recommandations de merveilleux articles précédents:

Bienvenue à tous pour aimer , laisser un message, transférer, réimprimer, merci pour votre entreprise et votre soutien

Si vous souhaitez rejoindre le groupe d'apprentissage Python, veuillez répondre en arrière-plan [ Entrer dans le groupe ]

Des milliers de rivières et de montagnes sont toujours amoureuses, pouvez-vous cliquer sur [ Recherche ]

/ Sujet du message du jour /

Dis juste un mot ou deux ~~

Je suppose que tu aimes

Origine blog.csdn.net/pdcfighting/article/details/113812660
conseillé
Classement