все Python 3inspectфункция
inspect.formatargvalues()
стек и кадры
Превращает результат getargvalues() в строку вида (x=1, y=2, *rest=(3,)) — удобно для отладочного лога вызовов.
Синтаксис
inspect.formatargvalues(*inspect.getargvalues(frame))
Распаковывайте ArgInfo звёздочкой: formatargvalues(*inspect.getargvalues(f)). Показывает текущие значения локальных переменных, поэтому зовут её в начале функции, пока параметры не переприсвоены. Для журнала вызовов из декоратора проще и надёжнее Signature.bind(), а не разбор кадров. Аннотации в строку переводят недокументированные formatannotation и formatannotationrelativeto.
Примеры
import inspect
def add(x, y=10, *rest, **opts):
frame = inspect.currentframe()
try:
return inspect.formatargvalues(*inspect.getargvalues(frame))
finally:
del frame
print(add(1, 2, 3, k=4)) # → (x=1, y=2, *rest=(3,), **opts={'k': 4})
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности