【1.51】装饰器--3返回值、传入参数
上面实现的是装饰器
但是没有返回值
import time def test(func): def wappy(): start = time.time() func() #加一个括号就直接运行func stop = time.time() print ("函数运行时间:%s"%(stop-start)) return wappy @test def foo(): time.sleep(0.1) print("hello foo") foo() #但是函数 foo 没有返回值,增加返回值 import time def test(func): def wappy(): start = time.time() result=func() #加一个括号就直接运行func stop = time.time() print ("函数运行时间:%s"%(stop-start)) return result #就增加了返回值 return wappy @test def foo(): time.sleep(0.1) res = "我是被修饰函数的返回值" print("hello foo") return res print(foo()) #这样就增加了返回值
看看传入参数:
import time def test(func): def wappy(*args,**kwargs): #不能把未知参数写死,就要灵活的写为* 和 ** ,接受任意长度参数 start = time.time() result=func(*args,**kwargs) #加一个括号就直接运行func stop = time.time() print ("函数运行时间:%s"%(stop-start)) return result #就增加了返回值 return wappy @test def foo(num,name,age,sex): time.sleep(0.1) res = "我是被修饰函数的返回值" print("hello foo") print (num,name,age,sex) return res print(foo(1,"yaoming",age=18,sex="male")) #这里就传入参数和增加了返回值
浙公网安备 33010602011771号