import random
import time
def download(filename):
print(f'开始下载{filename}')
time.sleep(random.randint(2, 6))
print(f'{filename}下载完成')
def upload(filename):
print(f'开始上传{filename}')
time.sleep(random.randint(4, 8))
print(f'{filename}上传完成')
start = time.time()
#download('MySql从删库到跑路.avi')
end = time.time()
print(f'花费时间:{end - start:.3f}秒')
start = time.time()
#upload('Python从入门到住院.pdf')
end = time.time()
print(f'花费时间:{end - start:.3f}秒')
#重复的代码是万恶之源 装饰器
# 定义装饰器函数,它的参数是被装饰的函数或类
def record_time(func):
#定义一个带装饰功能(记录被装饰函数的执行时间)的函数
#因为不知道被装饰的函数有怎样的参数所以使用*args 和 **kwargs接收所有参数
#在Python中函数可以嵌套的定义(函数中可以再定义函数)
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f'{func.__name__}执行时间:{end - start:.3f}秒')
return result
return wrapper
download = record_time(download)
download('JAVA教学.avi')
#语法糖 @装饰器函数
@record_time
def download(filename):
print(f'开始下载{filename}')
time.sleep(random.randint(1, 3))
print(f'{filename}下载完成')
@record_time
def upload(filename):
print(f'开始上传{filename}')
time.sleep(random.randint(1, 3))
print(f'{filename}上传完成')
download('Mysql从删库到跑路.avi')
upload('Py从入门到入土.pdf')
PY装饰器
最新推荐文章于 2023-06-25 10:54:44 发布