Метод print () для печати переданного выражения буквально вместе с вычисленным выводом для быстрой отладки

Я хотел бы иметь возможность выполнять отладку 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!

Есть ли способ достичь этого? Спасибо!

13
задан SagarGuptaFTW 21 August 2019 в 13:12
поделиться