1、報錯內容:
雖然函數的結果也正常打印出來了,但是多了一個報錯!
意思是:'NoneType'對象不可調用
代碼內容:
import time
# 裝飾器函數
def timmer(func):
def warpper(*args, **kwargs):
start_time = time.time()
func()
stop_time = time.time()
print(f"函數執行的時間為: {stop_time-start_time}")
return warpper()
@timmer # 引用裝飾器函數:相當於 test_oen= timmer(test_one)
def test_one():
time.sleep(3)
print("這是test1函數!!!")
if __name__ == '__main__':
test_one()
分析原因:
在 裝飾器函數 ruturn 返回 warpper結果時,多加了一個 “()”
解決辦法 :去掉“()”
修改后的代碼:
import time # 裝飾器函數 def timmer(func): def warpper(*args, **kwargs): start_time = time.time() func() stop_time = time.time() print(f"函數執行的時間為: {stop_time-start_time}") return warpper @timmer # 引用裝飾器函數:相當於 test_oen= timmer(test_one) def test_one(): time.sleep(3) print("這是test1函數!!!") if __name__ == '__main__': test_one()