目标:
1.编写运行函数,生成10个数的列表,没生成一个睡眠一会
2.编写装饰器,完成函数耗时计算
1.编写生成10个数的列表,并睡眠0.2s
import time
def loop():
result = []
for i in range(10):
result.append(i)
time.sleep(0.2)
return result
# 一个.py文件,如果是自身在运行,那么他的__name__值就是"__main__";
如果它是被别的程序导入的(作为一个模块)则不执行
if __name__ == '__main__':
print(loop())
2.编写装饰器,实现计算loop()函数,生成10个数列表的耗时
import time
# 装饰器部分
def deco(func):
def timeit():
start = time.time()
result = func()
end = time.time()
return (result,end - start)
return timeit
# 引用装饰器
@deco
def loop():
result = []
for i in range(10):
result.append(i)
time.sleep(0.2)
return result
if __name__ == "__main__":
print(loop())
提示:如果有多个函数,可以直接使用装饰器即可,如以下多个函数情况:
import time
# 装饰器部分
def deco(func):
def timeit():
start = time.time()
result = func()
end = time.time()
return (result,end - start)
return timeit
# 引用装饰器
@deco
def loop():
result = []
for i in range(10):
result.append(i)
time.sleep(0.2)
return result
@deco
def test():
t1 = []
for i in range(10):
t1.append(i)
time.sleep(0.8)
return t1
if __name__ == "__main__":
print(loop())
print(test())
装饰器,实现多个函数字体的统一设置
def set_color(func):
def color(*args):
return "\033[31m%s\033[0m" % func(*args)
return color
@set_color
def hello():
return "hello,world!"
@set_color
def greet():
return "How are you?"
@set_color
def welcome(word):
return "Welcome to %s" % word
if __name__ == "__main__":
print(hello())
print(greet())
print(welcome('bj'))