@deco
創(chuàng)新互聯(lián)公司專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、惠農(nóng)網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、電子商務(wù)商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為惠農(nóng)等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
def my():
# your code list
python 會解釋成:my = deco(my)
所以你實際上外面調(diào)用 my()函數(shù)時,調(diào)用的是deco 里面的wrapfunc(),返回值就是
wrapfunc()的返回值,即"return times"。
一個函數(shù)要返回兩個值是不現(xiàn)實的,你的需求可能是同時保存函數(shù)值和調(diào)用花費的時間
(或者簡單的打印出來而已?看你的需求了),略該如下(引入全局變量保存……):
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 表達(dá)式 表達(dá)式為真時,不報錯,否則報錯,assert 表達(dá)式后面還可以定義返回錯誤提示