python装饰器拦截方法执行

复制代码
import time


def log(delay=0):
    def decorator(func):
        def wrapper(*args, **kwargs):
            """我是 wrapper 的注释"""
            time1 = time.time()
            newargs = list(args)
            newargs[0] = newargs[0] * 2
            # res = func(*args, **kwargs)
            res = func(*newargs, **kwargs)
            time.sleep(delay)  # 延迟 delay 秒
            time2 = time.time()
            print("函数名:{}".format(func.__name__))
            print("函数注释内容:{}".format(func.__doc__))
            print("入参 args :{}".format(args))
            print("入参 kwargs :{}".format(kwargs))
            print("返回值:{}".format(res))
            print("函数执行耗时:{:.8f}".format(time2 - time1))
            return res

        return wrapper

    return decorator


@log(0)
def get_prime_sum(n):
    """我是 get_prime_sum 的注释"""
    sum = 0
    for i in range(1, n + 1):
        sum += i
    return sum


get_prime_sum(50)
复制代码

 

posted @   wujf  阅读(72)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示