若要实现一个求和方法{add(x,y):return x+y}加上装饰器,在return和数之前打印字符串”相加的结果是“,该怎么实现呢?
来源:12-13 装饰器 六
qq_神的病历簿_0
2018-01-11
若要实现一个求和方法{add(x,y):return x+y}加上装饰器,在return结果之前打印字符串”相加的结果是:“,该怎么实现呢?我试过用12-12的方法,add方法如果不是return x+y的话,而是print(x+y),则能够成功打印字符串“相加的结果是:”,但是换成return就不行了,求解答
写回答
2回答
-
因为你闭包内部的func执行后 没有 return啊。
032018-01-15 -
qq_神的病历簿_0
提问者
2018-01-11
import time
def func_with_time(func):
def wrapper(*args):
print(time.time())
func(*args)
return wrapper
@func_with_time
def add(x,y):
print(x+y)
@func_with_time
def cul(x,y):
print(x*y)
add(1,2)
cul(2,6)
这是我成功运行的代码,但是add方法和cul方法改成return某个值而不是print某个值的话,会返回None
然后我想add(1,2)赋给一个变量a,把a打印出来,但是也是打印None
00
相似问题