LINUX.ORG.RU

История изменений

Исправление eternal_sorrow, (текущая версия) :

from functools import wraps

def debug_func(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        out = func(*args, **kwargs)
        args_fmt = ", ".join([
            f"{name}={val}" for name, val in zip(func.__code__.co_varnames, args)
        ])
        print(f"in: args: {args_fmt}, kwargs={kwargs} out: {out}")
        return result
    return wrapper

сделал форматирование как в ОП

Исправление eternal_sorrow, :

from functools import wraps

def debug_func(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        out = func(*args, **kwargs)
        args_fmt = ", ".join([
            f"{name}={val}" for name, val in zip(func.__code__.co_varnames, args)
        ])
        print(f"in: args: {args_fmt}, kwargs={kwargs} out: {out}")")
        return result
    return wrapper

сделал форматирование как в ОП

Исправление eternal_sorrow, :

from functools import wraps

def debug_func(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        # тут можно прикрутить какой нибудь хитрое форматирование,
        # если нужно
        print(f"args: {args}\nkwargs: {kwargs}")
        result = func(*args, **kwargs)
        print(f"result: {result}")
        return result
    return wrapper

Исходная версия eternal_sorrow, :

from functools import wraps

def debug_func(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        # тут можно прикрутить какой нибудь хитрое форматирование,
        # если нужно
        print(f"args: {args}\nkwargs: {kwargs}")
        result = func(*args, **kwargs)
        print(f"result: {result}")
        return result