I’m using the fantastic varname python package https://pypi.org/project/varname/ to print python var names from inside the code:
>>> from varname import nameof
>>> myvar = 42
>>> print(f'{nameof(myvar)} + 8: {myvar + 8}')
myvar + 8: 50
>>>
but when I try to use it in a loop:
>>> a, b, c, d = '', '', '', ''
>>> for i in (a, b, c, d):
print(f'{nameof(i)}')
i
i
i
i
>>>
I do not get to print a, b, c, …
How could I get something like this ?:
a b c d
Advertisement
Answer
You can put the for loop into a function, and then use argname:
from varname import argname
a, b, c, d = '1', '2', '3', '4'
def fun(*args):
names = argname('args')
for i, name_of_i in zip(args, names):
print(f'Variable name: {name_of_i} Value: {i}')
Output of fun(a,b,c,d):
Variable name: a Value: 1 Variable name: b Value: 2 Variable name: c Value: 3 Variable name: d Value: 4