Как получить имя фактических параметров функции в Python?
Например:
def func(a):
# how to get the name "x"
x = 1
func(x)
Если я используюinspect
Модуль я могу получить объект стека кадра:
import inspect
def func(a):
print inspect.stack()
из:
[
(<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)
]
или использоватьinspect.currentframe()
Я могу получить текущий кадр.
Но я могу получить только имя"a"
по проверке объекта функции.
использованиеinspect.stack
Я могу получить стек вызовов:"['func(x)\n']"
,
Как я могу получить название реальных параметров ("x"
здесь) когда звонитеfunc
анализируя"['func(x)\n']"
?
Если я позвонюfunc(x)
тогда я получаю"x"
если я позвонюfunc(y)
тогда я получаю"y"
Пример:
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