• 技术文章 >Python技术 >Python基础教程

    python装饰器有哪些作用

    小妮浅浅小妮浅浅2021-08-10 10:12:33原创6162

    1、日志记录,在某些情况下,需要统计或记录功能执行的效率,但不想改变功能本身的内容,装饰器是很好的手段。

    import timeit
    def timer(func):
        def wrapper(n):
            start = timeit.default_timer()
            result = func(n)
            stop = timeit.default_timer()
            print('Time: ', stop - start)
            return result
        return wrappe

    2、作为缓存,装饰器的另一个好的应用场景是作为缓存。

    例如lru将函数输入和返回值作为缓存,以计算斐波的契数为例,n值的大小为30,执行效率大不相同。

    def fib(n):
        if n < 2:
            return 1
        else:
            return fib(n - 1) + fib(n - 2)
            
    @functools.lru_cache(128)
    def fib_cache(n):
        if n < 2:
            return 1
        else:
            return fib_cache(n - 1) + fib_cache(n - 2)
            
    Time:  0.2855725
    Time:  3.899999999995574e-05

    以上就是python装饰器的作用,希望对大家有所帮助。更多Python学习指路:python基础教程

    本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

    专题推荐:python装饰器
    上一篇:python装饰器如何保留原函数信息 下一篇:python动态存取属性如何实现

    相关文章推荐

    • python装饰器如何实现• 最全python装饰器的各种写法• python装饰器转换方法的注意点• python装饰器管理函数和类的注意点• Python装饰器的应用场景• python装饰器如何保留原函数信息

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网