2 Star 1 Fork 15

jackfrued/review

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
example11.py 1.25 KB
一键复制 编辑 原始数据 按行查看 历史
jackfrued 提交于 2020-06-10 09:52 . 用类实现装饰器
import random
import time
# class Person:
#
# def __init__(self, name, age):
# self.name = name
# self.age = age
#
# def __call__(self, *args, **kwargs):
# print(f'{self.name}可以调用啦')
#
#
# p = Person('Wang', 20)
# p()
# 用类作为装饰器:相对于用一个可调用对象替换掉被装饰的函数
class TimeRecorder:
def __init__(self, func):
self.func = func
def __call__(self, *args, **kwargs):
start = time.time()
result = self.func(*args, **kwargs)
end = time.time()
print(f'执行时间: {end - start:.3f}秒')
return result
# 用函数作为装饰器:用一个函数把被装饰器的函数替换掉
# def record_time(func):
#
# def wrapper(*args, **kwargs):
# start = time.time()
# result = func(*args, **kwargs)
# end = time.time()
# print(f'执行时间: {end - start:.3f}秒')
# return result
#
# return wrapper
# download = record_time(download)
# @record_time
# download = TimeRecorder(download)
@TimeRecorder
def download(filename):
print(f'开始下载{filename}')
time.sleep(random.randint(3, 8))
print(f'{filename}下载完成')
print(type(download))
download('Python从入门到住院')
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/jackfrued/review.git
git@gitee.com:jackfrued/review.git
jackfrued
review
review
master

搜索帮助