Obtenez les résultats intermédiaires des appels de fonction lors du débogage de Python dans PyCharm


Armée de la Terre

Sur les points d'arrêt -> Le débogueur PyCharm affiche la liste actuelle des états des variables et est également capable d'afficher les résultats des calculs / appels des lignes précédentes.

Mais que se passe-t-il si je souhaite obtenir des résultats intermédiaires sur les appels de chaîne de fonctions sur la même ligne de code?

Par exemple:

l = [3, 4, 5]
l = list(map(str, l)) #here I want to check result "of map(str, l)"

s = "_".join(l).upper()[::-1] #here I want see values for each interim func calls (join, upper)

Est-ce possible d'une manière ou d'une autre dans PyCharm?

bad_coder

Cela peut être fait en utilisant un point d'arrêt sur cette ligne. Faites un clic droit sur le point d'arrêt et utilisez un tuple dans le Evalute and logchamp ayant comme valeurs les appels de la chaîne de méthode incrémentielle:

Le code suivant montre des différences dans les résultats intermédiaires:

l = ['Hello', 'my', 'friends']

s = "_".join(l).upper()[::-1]

Utilisation d'un tuple dans Evaluate and log:

(l, "_".join(l), "_".join(l).upper(), "_".join(l).upper()[::-1])

Le débogueur affiche les résultats sur la sortie standard:

(['Hello', 'my', 'friends'], 'Hello_my_friends', 'HELLO_MY_FRIENDS', 'SDNEIRF_YM_OLLEH')

Capture d'écran correspondante:

entrez la description de l'image ici

Articles connexes