给add()和sub()添加一个名为logged装饰器函数代码
时间: 2023-07-07 16:21:42 浏览: 45
好的,下面是给add()和sub()添加一个名为logged装饰器函数的代码:
```python
def logged(func):
def wrapper(*args, **kwargs):
print("Function {} called with args: {} and kwargs: {}".format(func.__name__, args, kwargs))
return func(*args, **kwargs)
return wrapper
@logged
def add(a, b):
return a + b
@logged
def sub(a, b):
return a - b
```
上面的代码中,我们定义了一个名为logged的装饰器函数,它接受一个函数作为参数,并返回一个新的函数wrapper。wrapper函数打印出被装饰函数的名称和参数,并调用原始函数。最后,我们使用@符号将logged装饰器应用到add()和sub()函数上。
现在,当我们调用add()和sub()函数时,会自动调用logged装饰器函数,打印出函数名称和参数。例如:
```python
result = add(2, 3)
# Output: Function add called with args: (2, 3) and kwargs: {}
# 5
result = sub(5, 2)
# Output: Function sub called with args: (5, 2) and kwargs: {}
# 3
```
注意,我们在wrapper函数中使用了*args和**kwargs参数,这是为了允许被装饰的函数接受任意数量和类型的参数。这样,我们可以在没有改变原始函数签名的情况下,使用logged装饰器来打印出函数调用的信息。
相关推荐
![.zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)