python 延迟指令
时间: 2024-10-15 12:04:51 浏览: 19
在Python中,延迟指令通常通过生成器(Generator)或装饰器(Decorator)来实现。以下是两个常见的用途:
1. **生成器**:生成器是一种特殊的迭代器,它不会一次性计算所有数据,而是在需要的时候“惰性”地生成值。当你调用一个生成器函数时,它会返回一个生成器对象,然后每次迭代时才会执行实际的计算。例如:
```python
def lazy_sequence(n):
for i in range(n):
yield i * i
# 使用生成器
for square in lazy_sequence(5):
print(square)
```
这里,`lazy_sequence`就是一个延迟执行的指令,直到我们真正开始迭代时才会计算平方。
2. **装饰器**:装饰器允许你在运行时修改或增强函数的行为,而不必直接修改函数源码。它们可以将原函数包装起来,并在函数调用前或后执行额外的操作。如使用 `@timeit` 装饰器来测量函数执行时间:
```python
import time
def timeit(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"{func.__name__} took {end - start} seconds")
return result
return wrapper
@timeit
def my_function():
# 函数体...
my_function()
```
在这个例子中,`my_function` 的执行时间会在被调用时被延迟记录。
阅读全文