老师,运行输出问题
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()
老师,这作业我有点不大会~
我跟着一步一步写出来,可是输出只显示装饰器....时间没输出,请老师教导
20
收起
正在回答 回答被采纳积分+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 星