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

    python装饰器有哪些作用

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

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

    1

    2

    3

    4

    5

    6

    7

    8

    9

    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,执行效率大不相同。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    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学习网