I want to debug my python program using only print, but I don't want to repeat my self every row.
for e.g, instead of writing:
print(f"var1 = {var1}")
print(f"var2 = {var2}")
I would like to write:
debug(var1, var2) or debug("var1", "var2")
and get
>>> var1 = 3
>>> var2 = 8
I wrote a short function doing this
def debug_globals(*vars):
for var in vars:
try:
print(f'{var} = {repr(eval(var))}')
except NameError as e:
print(e)
It works for globals variables, but won't work for debuging local variables inside a function .
>>> x = 2
>>> y = 3
>>> def foo():
... x = 5
... debug_globals('x', 'y')
>>> foo()
x = 2
y = 3
How can I improve my "debug" function?