定义一个装饰器
您的同事正在编写一个装饰器:在被装饰的函数调用前打印一条 "before" 信息,在调用后打印一条 "after" 信息。他们一时想不起来该如何正确地对被装饰的函数进行包装。请通过完成他们的 print_before_and_after() 装饰器来帮他们一把。
本练习是课程的一部分
Python 函数编写
练习说明
- 调用被装饰的函数,并将位置参数
*args传入。 - 返回新的装饰后函数。
交互式实操练习
通过完成这段示例代码来试试这个练习。
def print_before_and_after(func):
def wrapper(*args):
print('Before {}'.format(func.__name__))
# Call the function being decorated with *args
____(*args)
print('After {}'.format(func.__name__))
# Return the nested function
return ____
@print_before_and_after
def multiply(a, b):
print(a * b)
multiply(5, 10)