采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
若要实现一个求和方法{add(x,y):return x+y}加上装饰器,在return结果之前打印字符串”相加的结果是:“,该怎么实现呢?我试过用12-12的方法,add方法如果不是return x+y的话,而是print(x+y),则能够成功打印字符串“相加的结果是:”,但是换成return就不行了,求解答
因为你闭包内部的func执行后 没有 return啊。
噢明白了 就是说有return的函数和没有return的函数用的装饰器不一样是吧老师?
装饰器是一样,但是你不返回结果它怎么能够得到结果呢?
非常感谢!
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)
def cul(x,y):
print(x*y)
add(1,2)
cul(2,6)
这是我成功运行的代码,但是add方法和cul方法改成return某个值而不是print某个值的话,会返回None
然后我想add(1,2)赋给一个变量a,把a打印出来,但是也是打印None
登录后可查看更多问答,登录/注册
语法精讲/配套练习+思考题/原生爬虫实战
6.3k 7
2.9k 3
2.7k 5
4.6k 22
2.8k 19
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号