For example:
def func(a):
# how to get the name "x"
x = 1
func(x)
If I use inspect
module I can get the stack frame object:
import inspect
def func(a):
print inspect.stack()
out:
[
(<frame object at 0x7fb973c7a988>, 'ts.py', 9, 'func', [' stack = inspect.stack()\n'], 0)
(<frame object at 0x7fb973d74c20>, 'ts.py', 18, '<module>', ['func(x)\n'], 0)
]
or use inspect.currentframe()
I can get the current frame.
But I can only get the name "a"
by inspect the function object.
Use inspect.stack
I can get the call stack:"['func(x)\n']"
,
How can I get the name of actual parameters("x"
here) when call the func
by parsing the "['func(x)\n']"
?
If I call func(x)
then I get "x"
if I call func(y)
then I get "y"
Edit:
A example:
def func(a):
# Add 1 to acttual parameter
...
x = 1
func(x)
print x # x expected to 2
y = 2
func(y)
print y # y expected to 3