告诉我decorators在python中有什么作用，并以markdown格式输出，解释要包含以下三个要点：1. decorators可以在不修改原函数的情况下给函数增加额外功能。2. decorators如何使用@符号。3. decorators可以带参数使用。
user
```markdown
# Decorators在Python中的作用

## 要点1: 不修改原函数，增加功能

Decorators作为一个高级Python特性，允许程序员在不改变原函数定义的情况下，给函数增加额外的功能。通过这种方式，decorator提供了一种模型，可以让特定的行为应用于多个函数，而不需要为每个函数单独添加相同的代码。

## 要点2: 使用`@`符号

说起应用decorator，最常见的方式便是利用`@`符号，它放置在函数定义之前，紧跟着一个decorator的名称。这种方式简单直观，提高了代码的可读性和可维护性。例如，使用一个名为`log`的decorator来看一下具体的样子：

```python
@log
def my_function():
    pass
```

## 要点3: 可携带参数

值得注意的是，decorators本身不仅可以被定义为简单的包装函数，它们还可以携带额外的参数，为配置或是参数化它们的行为提供强大的灵活性。当使用携带参数的decorator时，需要在`@`符号后面增加一层括号来传递参数。一个携带参数的decorator例子可能看起来像这样：

```python
@log(level='info')
def my_function():
    pass
```
上述代码展示了如何对一个名为`log`的decorator配置日志级别。
```
```
assistant