Задать вопрос
@mkone112
Начинающий питонист.

Простой способ получить сигнатуру вызова функции, имея объект самой функции и ее аргументы?

Сейчас использую что-то вроде:
def get_signature(func, *args, **kwargs):
    args_str = ", ".join(map(str, args))
    kwargs_str = ", ".join(f'{key}={val}' for key, val in kwargs.items())
    signature = ', '.join(s for s in [args_str, kwargs_str] if s)
    return f'{func.__qualname__}({signature})'


def f():...


print(get_signature(f))  # f()
print(get_signature(f, 1, a=1))  # f(1, a=1)

Способ довольно длинный и имеющий кучу недостатков вроде отсутствия валидации аргументов.
Нет ли какого-то встроенного способа достичь желаемого?
  • Вопрос задан
  • 153 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы