Я хотел бы иметь возможность выполнять отладку Python, используя print() или аналогичный метод, где он печатает переданное выражение в дополнение к обычному выводу.
Например, для следующего кода:
print(42 + 42)
print(type(list))
print(datetime.now())
Текущий вывод:
84
<class 'type'>
2019-08-15 22:43:57.805861
Ожидаемый результат:
42 + 42 : 84
type(list) : <class 'type'>
datetime.now() : 2019-08-15 22:43:57.805861
В настоящее время то же самое может быть достигнуто путем добавления строки выражения вручную (не очень элегантно, imho и нарушает принцип DRY).
print("42 + 42 : ", 42 + 42)
print("type(list) : ", type(list))
print("datetime.now() : ", datetime.now())
Я пытался переопределить встроенную печать, но безуспешно:
import builtins
def print(*args, **kwargs):
return builtins.print(*args, **kwargs) # passed expression isn't available here as string!
Есть ли способ достичь этого? Спасибо!