python 装饰器

装饰器

  • 内部实现原理,例如在 slepp 功能基础上增加开始睡觉和睡醒了的功能
def outer(mmsleep):
    def inner():
        print("开始睡觉---")
        mmsleep()
        print("睡醒了---")
    return inner


def sleep():
    import random
    import time
    time.sleep(random.randint(1,4))
    print("睡眠中-----")

mysleep = outer(sleep)

mysleep()

#打印输出
开始睡觉---
睡眠中-----
睡醒了---
  • 装饰器实现,未修改 sleep() 函数调用方式,新增加了相关功能
def outer(mmsleep):
    def inner():
        print("开始睡觉---")
        mmsleep()
        print("睡醒了---")
    return inner

@outer
def sleep():
    import random
    import time
    time.sleep(random.randint(1,4))
    print("睡眠中-----")

sleep()

#打印输出
开始睡觉---
睡眠中-----
睡醒了---
posted @ 2023-02-28 10:20  lixinliang  阅读(18)  评论(0编辑  收藏  举报