装饰器(Decorators)是 Python 中的一个高级功能,它允许你修改或增强函数、方法或类的行为。装饰器本质上是一个接受函数作为参数的可调用对象(通常是一个函数),并返回一个新的函数。
- 装饰器,语法:@装饰器名类。
def outer(func):
def inner():
print("我要睡觉了")
func()
print("我睡醒了")
return inner
@outer
def sleep():
import random
import time
print("睡眠中.........")
time.sleep(random.randint(1, 5))
sleep()
- 原理,使用了一个闭包,返回一个新的函数,将需要执行的函数放到这个闭包函数中。
def outer(func):
def inner():
print("我要睡觉了")
func()
print("我睡醒了")
return inner
def sleep():
import random
import time
print("睡眠中.........")
# random.randint(1, 5) 表示从1-5中返回一个随机整数
# time.sleep() 让程序睡眠一段时间, 需要传一个int类型
time.sleep(random.randint(1, 5))
fn = outer(sleep)
fn()