#python #debugging #pycharm #chain
#python #отладка #pycharm #цепочка
Вопрос:
В точках останова -> PyCharm debugger показывает текущий список состояний переменных, а также может отображать результаты вычисления / вызова предыдущих строк.
Но что, если я хочу получить промежуточные результаты по вызовам цепочки функций в одной и той же строке кода?
Например:
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)
Возможно ли это как-то в PyCharm?
Ответ №1:
Это можно сделать, используя точку останова в этой строке. Щелкните правой кнопкой мыши на точке останова и используйте кортеж в Evalute and log
поле, имеющем в качестве значений вызовы цепочки инкрементных методов:
Следующий код показывает различия в промежуточных результатах:
l = ['Hello', 'my', 'friends']
s = "_".join(l).upper()[::-1]
Использование кортежа в Evaluate and log
:
(l, "_".join(l), "_".join(l).upper(), "_".join(l).upper()[::-1])
Отладчик отображает результаты на стандартном выводе:
(['Hello', 'my', 'friends'], 'Hello_my_friends', 'HELLO_MY_FRIENDS', 'SDNEIRF_YM_OLLEH')
Соответствующий снимок экрана: