python中@符号
时间: 2025-04-16 09:37:33 AIGC 浏览: 68
### Python中的装饰器及其`@`符号用法
在Python中,`@`符号用于表示函数或类的装饰器。这种语法糖使得应用装饰器更加直观简洁[^1]。
当定义一个带有参数的装饰器时,实际上是在创建一个多层嵌套的过程:
```python
def decorator_with_args(a, b):
def actual_decorator(func):
def wrapper(*args, **kwargs):
print(f"Decorator arguments: {a}, {b}")
return func(*args, **kwargs)
return wrapper
return actual_decorator
@decorator_with_args('arg1', 'arg2')
def my_function(x):
print(f"My function received argument: {x}")
my_function(99)
```
上述代码展示了如何通过`@`来简化原本较为复杂的写法 `func = decorator(args)(func)`。这里的关键在于理解装饰器本身是一个返回另一个函数的对象,而这个内部函数会在调用被装饰的目标函数之前执行额外的操作。
对于无参装饰器,则更为简单直接:
```python
def simple_decorator(func):
def enhanced_func():
print("Before the call.")
result = func()
print("After the call.")
return result
return enhanced_func
@simple_decorator
def greet():
print("Hello!")
greet()
```
此例子说明了即使是最基础形式下的装饰器也能够增强原有功能而不改变其核心逻辑结构。
阅读全文
