若要实现一个求和方法{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回答

7七月

2018-01-14

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

0
3
qq_神的病历簿_0
非常感谢!
2018-01-15
共3条回复

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

0
0

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14447 学习 · 4438 问题

查看课程