1、报错内容:

python报错:TypeError:

 

虽然函数的结果也正常打印出来了,但是多了一个报错!

意思是:'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()

 

学如逆海行舟,不进则退。