python里@是干嘛的?
时间: 2025-04-17 21:46:26 浏览: 28
在Python中,`@` 符号主要用于装饰器(decorator)。装饰器是一种特殊的函数,它可以修改其他函数的行为而不改变其源代码。装饰器通常用于日志记录、访问控制、性能监控等场景。
### 装饰器的基本语法
```python
@decorator_function
def my_function():
pass
```
上面的代码相当于:
```python
my_function = decorator_function(my_function)
```
这说明 `@decorator_function` 实际上是对 `my_function` 进行了包装处理,并将结果赋值给原来的 `my_function` 名称。
### 常见用途示例
1. **日志记录**:可以在调用某个函数之前或之后打印日志信息。
2. **权限检查**:可以用来验证用户是否有权执行特定操作。
3. **缓存结果**:对于计算量大的函数,可以用装饰器来保存之前的计算结果以提高效率。
#### 示例代码:
```python
import time
# 定义一个简单的计时装饰器
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"Function {func.__name__} took {end_time - start_time:.4f} seconds")
return result
return wrapper
@timer
def slow_function(n):
for i in range(10**n):
_ = i * 2
slow_function(6) # 输出类似 "Function slow_function took X.XXXX seconds"
```
通过这个例子可以看到,在不需要修改原有函数的情况下,我们成功添加了一个新的功能——统计并显示函数运行时间。
阅读全文
相关推荐


















