# 作业 # 1.实现装饰器add_kg,将以下克转千克的函数的返回值添加上单位“kg” # @add_kg # def g_to_kg(num): # return num / 1000 # 2.实现装饰器@timer,他可以统计被装饰的函数每一次运行需要多久时间 # 提示time模块中的time()函数可以返回调用时的时间 举例: # start = time.time() # .....代码片段 # end = time.time() # duration = start - end # 这里的duration 就是代码片段的耗费的时间
代码:
import time
# 装饰器add_kg
def add_kg(func):
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
return f"{result} kg"
return wrapper
# 装饰器timer
def timer(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
duration = end - start
print(f"函数{func.__name__}运行耗时: {duration}秒")
return result
return wrapper
# 示例函数 g_to_kg
@add_kg
def g_to_kg(num):
return num / 1000
# 示例函数 test_func
@timer
def test_func():
time.sleep(1)
# 测试示例函数 g_to_kg
print(g_to_kg(2000)) # 输出"2.0 kg"
# 测试示例函数 test_func
test_func() # 输出函数test_func运行耗时: 1.0秒
结果: