请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

若要实现一个求和方法{add(x,y):return x+y}加上装饰器,在return和数之前打印字符串”相加的结果是“,该怎么实现呢?

若要实现一个求和方法{add(x,y):return x+y}加上装饰器,在return结果之前打印字符串”相加的结果是:“,该怎么实现呢?我试过用12-12的方法,add方法如果不是return x+y的话,而是print(x+y),则能够成功打印字符串“相加的结果是:”,但是换成return就不行了,求解答

正在回答

2回答

因为你闭包内部的func执行后 没有 return啊。

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_神的病历簿_0 #1
    噢明白了 就是说有return的函数和没有return的函数用的装饰器不一样是吧老师?
    回复 有任何疑惑可以回复我~ 2018-01-14 20:24:11
  • 7七月 回复 提问者 qq_神的病历簿_0 #2
    装饰器是一样,但是你不返回结果它怎么能够得到结果呢?
    回复 有任何疑惑可以回复我~ 2018-01-15 22:38:56
  • 提问者 qq_神的病历簿_0 #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-01-15 22:52:05
提问者 qq_神的病历簿_0 2018-01-11 17:11:12

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

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号