zoukankan      html  css  js  c++  java
  • 函数进阶_装饰器

    #装饰器形成的过程
    # 装饰器的作用
    # 原则:开放封闭原则
    # 装饰器的固定模式

    # 懂技术的公司
    # bug
    # 不懂技术
    import time
    # time.time()
    # time.sleep()
    # def func():
    # print("老板好同事好大家好")


    # func()
    import time
    # time.sleep(5)#让程序在这个地方睡五秒

    # print("hah")
    # print(time.time())1970年以后的每一秒

    # def func():
    # start = time.time()
    # print("you want to buy")
    # time.sleep(0.01)
    # end = time.time()
    # print("{}".format(end-start))
    #
    # func()
    # import time
    #
    # def func():
    # print("you are my girl, i love you ")
    #
    #
    # def timer(f):
    # start = time.time()
    # f()
    # end = time.time()
    # print("{}".format(end-start))
    #
    # timer(func)

    # 形成闭包

    import time

    def func():
    print("123")
    return 234
    def timer(f): #装饰器函数
    def inner():
    start = time.time()
    ret = f() #被装饰函数
    end = time.time()
    print("{}".format(end - start))
    return ret
    return inner

    func = timer(func)

    ret = func()
    print(ret)

    #再不改函数的调用方式,但是还是在原来的函数的前后添加功能
    # timer就是一个装饰器函数,只是对一个函数,有一些装饰作用


    # 原则:开放封闭原则
    # 开放:对扩展是开放的
    # 封闭:对修改是封闭的

    # 装饰器函数
    #被装饰器函数
    # 装饰器函数


    def wrapper(func):
    def inner(*args, **kwargs):

    ret = func(*args, **kwargs)

    return ret
    return inner

    @wrapper #qqxing = wrapper(qqxing)
    def qqxing():
    print(123)

    ret = qqxing() #inner
  • 相关阅读:
    算法导论:快速排序
    lintcode:打劫房屋 III
    lintcode:打劫房屋II
    lintcode:打劫房屋
    算法导论:二叉搜索树
    算法导论:整齐打印
    砝码称重问题二
    多重背包问题II
    多重背包问题
    lintcode:背包问题II
  • 原文地址:https://www.cnblogs.com/jly1/p/9592401.html
Copyright © 2011-2022 走看看