老师,运行输出问题
import time
# clock装饰器
def clock(func):
def clocked(*args, **kwargs):
# 起始时间
start=time.time()
# 程序执行
result=func(*args ,**kwargs)
# 结束时间
end=time.time()
# 输出
print(func.__name__, end - start)
return result
def test():
print('装饰器……')
time.sleep(5)
test()老师,这作业我有点不大会~
我跟着一步一步写出来,可是输出只显示装饰器....时间没输出,请老师教导
22
收起
正在回答 回答被采纳积分+1
2回答
好帮手慕小猿
2023-11-23 16:32:50
同学,你好!同学有两处错误,如下:
1、被修饰函数上方要写上修饰的函数名

2、修饰函数内要return clocked内层函数名,这样才可以调用执行内层函数clocked

完整代码如下:
import time
# clock装饰器
def clock(func):
def clocked(*args, **kwargs):
# 起始时间
start = time.time()
# 程序执行
result = func(*args, **kwargs)
# 结束时间
end = time.time()
# 输出
print(func.__name__, end - start)
return result
return clocked
@clock
def test():
print('装饰器……')
time.sleep(5)祝学习愉快~
慕斯卡5178021
2023-11-23 15:38:25
import time
# clock装饰器
def clock(func):
#注意缩进
def clocked(*args, **kwargs):
# 起始时间
start=time.time()
# 程序执行
func(*args ,**kwargs)#直接调用函数,test()函数没有设置返回值
# 结束时间
end=time.time()
# 输出
print(func.__name__, end - start)
# return result #调用的函数没有返回值所以不需要return
return end - start #可以返回一下时间,也可以什么都不return
return clocked#需要返回内部函数
@clock #需要添加装饰器
def test():
print('装饰器……')
time.sleep(5)
test()
#再试一下有没有返回时间
t1 = test()
print('函数的返回值是',t1)学生来解答一下,如果老师同学们看到了也点评一下有没有问题

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星