Python Glossary English

все 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Сообщить о неточности