当前位置:   article > 正文

【python】python中装饰器简单介绍及代码实践_pythom装饰器骨架代码

pythom装饰器骨架代码
  1. 装饰器的好处就是在不用更改原函数的代码前提下给函数增加新的功能
  2. 两个原则:
    不能修改被装饰的函数的源代码
    不能修改被装饰的函数的调用方式
对无参函数进行装饰 
def total_time(func):
    def wrapper():
        start = datetime.datetime.now()
        func()
        stop = datetime.datetime.now()
        time = (stop - start).seconds
        print(time)
    return wrapper

@total_time
def pri():
    print("计算程序执行时间")

if __name__ == "__main__":
    pri()
# #原理:
1.执行函数pri()时,会先调用total_time函数,将被装饰的函数pri当做入参传入(此时未pri)
2.在执行total_time函数时,直接把内部函数wrapper返回了,同时把它赋值给pri
3.(重点)此时的pri已经不是未加装饰时的pri了,而是指向了total_time.wrapper函数地址了
4.接下来,执行新pri函数,即total_time.wrapper函数,先start赋值,然后调用原来的pri(),该处的pri就是通过装饰传进来的参数pri
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
对有参函数进行装饰
def total_time(func):
    def wrapper(*args,**kwargs):
        start = datetime.datetime.now()
        func(*args,**kwargs)
        sto
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/213262
推荐阅读
相关标签
  

闽ICP备14008679号