I would like to be able to get the name of a variable as a string but I don't know if Python has that much introspection capabilities. Something like:
>>> print(my_var.__name__)
'my_var'
I want to do that because I have a bunch of vars I'd like to turn into a dictionary like :
bar = True
foo = False
>>> my_dict = dict(bar=bar, foo=foo)
>>> print my_dict
{'foo': False, 'bar': True}
But I'd like something more automatic than that.
Python have locals()
and vars()
, so I guess there is a way.
I uploaded a solution to pypi. It's a module defining an equivalent of C#'s
nameof
function.It iterates through bytecode instructions for the frame its called in, getting the names of variables/attributes passed to it. The names are found in the
.argrepr
ofLOAD
instructions following the function's name.