装饰器和生成器是Python中两个非常重要的高级特性。
装饰器(Decorator)
装饰器本质上是一个函数,它可以在不修改原函数代码的情况下,给函数增加额外的功能。
def timer(func):
import time
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
print(f'{func.__name__} 执行时间: {time.time()-start:.4f}秒')
return result
return wrapper
@timer
def slow_function():
import time
time.sleep(1)
return 'done'生成器(Generator)
生成器是一种特殊的迭代器,使用yield关键字来暂停和恢复函数的执行。
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b实际应用场景
装饰器常用于日志记录、权限验证、缓存等场景;生成器常用于流式数据处理、无限序列和协程等场景。
评论 (0)
暂无评论,来发表第一条评论吧!
发表评论