简介
- 装饰器就是使用创建一个闭包函数,在闭包函数内调用目标函数。
- 可以达到不改动目标函数的同时,增加额外的功能。
写法
def outer(func):
def inner():
print('开始延迟')
func()
print('延迟结束')
return inner
def yanchi():
import random
import time
seconds = random.randint(1,5)
print(f"延迟{seconds}秒")
time.sleep(seconds)
'''
fn = outer(yanchi)
fn()
'''
# 糖写法
@outer # 定义在目标函数之上,和第14行功能一致
def yanchi_2():
import random
import time
seconds = random.randint(1,5)
print(f"延迟{seconds}秒")
time.sleep(seconds)
yanchi_2()
输出
开始延迟
延迟2秒
延迟结束