python里面的装饰器
时间: 2024-04-24 08:20:35 浏览: 146
装饰器是Python中一种强大的语法特性,它可以在不修改原函数代码的情况下,为函数添加额外的功能。装饰器一般采用语法糖的形式,使用`@`符号将装饰器应用于函数。
在Python中,装饰器可以有多种形式,比如`@classmethod`、`@staticmethod`、`@property`等。这些装饰器可以用来修饰类的方法,使其具有特殊的行为或属性。
此外,装饰器还可以自定义,通过定义一个函数来实现。装饰器函数接受一个函数作为参数,并返回一个新的函数,新函数可以在调用原函数之前或之后执行额外的操作。
装饰器的执行时机取决于被装饰函数和装饰器所在的模块关系。当被装饰函数和装饰器在同一个模块时,装饰器只有在明确调用被装饰函数时才会执行。当被装饰函数和装饰器在不同的模块时,只要被装饰函数一经定义,装饰器就会立即执行,通常在导入模块时发生。
以下是一个自定义装饰器的示例[^1]:
```python
def my_decorator(func):
def wrapper():
print("Before function execution")
func()
print("After function execution")
return wrapper
@my_decorator
def my_function():
print("Inside the function")
my_function()
```
输出:
```
Before function execution
Inside the function
After function execution
```
阅读全文