十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
@deco
创新互联公司专注于企业网络营销推广、网站重做改版、惠农网站定制设计、自适应品牌网站建设、HTML5建站、电子商务商城网站建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为惠农等各大城市提供网站开发制作服务。
def my():
# your code list
python 会解释成:my = deco(my)
所以你实际上外面调用 my()函数时,调用的是deco 里面的wrapfunc(),返回值就是
wrapfunc()的返回值,即"return times"。
一个函数要返回两个值是不现实的,你的需求可能是同时保存函数值和调用花费的时间
(或者简单的打印出来而已?看你的需求了),略该如下(引入全局变量保存……):
funcall_cost = 0
def deco(func):
def wrapfunc(*args, **kwrags):
global funcall_cost
now = time()
result = func(*args, **kwargs)
funcall_cost = time() - now
return result
return wrapfunc
def silly_function(a):
try:
print(int(a) + a)
except ValueError:
print("Hmmm...I can't use that value")
except TypeError:
print("Your input is invalid!")
silly_function(2)
assert 表达式 表达式为真时,不报错,否则报错,assert 表达式后面还可以定义返回错误提示