》基本裝飾器沒有引數沒有返回值
》當功能函式有返回值的情況下
解決返回值的問題
import time
# 裝飾器函式
def cont_time(func):
"""統計時間的裝飾器"""
def inner():
start_time = time.time()
print('計時開始。。。')
func()
end_time = time.time()
print('計時結束,總共耗時秒'.format(end_time - start_time))
return inner
# 功能函式
@cont_time # 相當於 do_work = cont_time(do_word)
def do_work():
"""有耗時的函式"""
print('do_work開始')
time.sleep(1)
print('do_work結束')
return 'work is done' # !返回值需要傳遞
res = do_work()
print(res)
結果
c:\users\python_hui\anaconda3\python.exe g:/test/a/1.py
計時開始。。。
do_work開始
do_work結束
計時結束,總共耗時1.01秒
none
process finished with exit code 0
import time
# 裝飾器函式
def cont_time(func):
"""統計時間的裝飾器"""
def inner():
start_time = time.time()
print('計時開始。。。')
res = func() # !這裡接收
end_time = time.time()
print('計時結束,總共耗時秒'.format(end_time - start_time))
return res # !這裡返回
return inner
# 功能函式
@cont_time # 相當於 do_work = cont_time(do_word)
def do_work():
"""有耗時的函式"""
print('do_work開始')
time.sleep(1)
print('do_work結束')
return 'work is done' # 返回值需要傳遞
res = do_work()
print(res)
結果,拿到返回值了
c:\users\python_hui\anaconda3\python.exe g:/test/a/1.py
計時開始。。。
do_work開始
do_work結束
計時結束,總共耗時1.00秒
work is done
process finished with exit code 0
秒懂裝飾器(帶傳參和返回值)
coding utf 8 import time 傳入的引數為func,即函式名 函式的位址 不是func 若是func 即把函式的執行結果傳入了timer deftimer func 將函式名傳遞給另乙個函式作為引數,稱之為高階函式 defdeco args,kargs 在函式內定義乙個函式,稱之...
C lambda查詢帶返回值
具體如下 var lists new list foreach var item in lists.where x x.length 2 如果願意,完全可以使用action進行輸入上述的item,而不是在foreach中加一層判斷。問題簡單描述就是 簡單來說就是直接在where中輸出長度大於2的字元...
帶返回值的介面寫法
假定介面需要返回乙個指標,且可能涉及某些條件判斷,不一定能獲取到有效指標,大部分人寫法如下 根據條件判斷是否返回有效值 pointer getptr void 之後為了 嚴謹,會有以下操作 pointer pptr getptr if pptr nullptr 很多地方呼叫getptr介面的話,到處...