假如我有一个函数,作用是打印从start开始到end为止每一个数
def count(start, end):
for i in range(start, end+1):
print(i)
现在我想用装饰器在函数count执行前显示“报数开始”,结束后显示“报数结束”
def mydecorator(func):
def warpper(*args, **kwargs):
print("---报数开始---")
func(*args, **kwargs)
print("---报数结束---")
return warpper
@mydecorator
def count(start, end):
for i in range(start, end+1):
print(i)
count(start=0, end=10)
和下面这种写法有什么区别,优缺点是什么?
def deal(func, *args, **kwargs):
print("---报数开始---")
func(*args, **kwargs)
print("---报数结束---")
def count(start, end):
for i in range(start, end+1):
print(i)
deal(count, start=0, end=10)