Python的生成器(Generators)和装饰器(Decorators)
2023-12-24 03:05:20
-
生成器(Generators):生成器是一种特殊类型的迭代器,允许你按需生成值,而不是一次性生成所有值。它们使用?
yield
?关键字而不是?return
,并在每次迭代时返回一个值。生成器在处理大量数据时非常有用,因为它们可以节省内存。例如:# 使用生成器生成无限序列的前 n 个斐波那契数 def fibonacci(n): a, b = 0, 1 for _ in range(n): yield a a, b = b, a + b # 打印前 10 个斐波那契数 fib_gen = fibonacci(10) for num in fib_gen: print(num) # 输出: 0 1 1 2 3 5 8 13 21 34
-
装饰器(Decorators):装饰器是 Python 中修改函数或类行为的一种高级功能。它们使用?
@
?符号作为语法糖,允许你在不修改函数或类代码的情况下添加额外的功能。装饰器在日志记录、权限验证、性能优化等方面非常有用。例如:# 使用装饰器测量函数执行时间 import time def timer_decorator(func): def wrapper(*args, **kwargs): start_time = time.time() result = func(*args, **kwargs) end_time = time.time() print(f"{func.__name__} 执行时间: {end_time - start_time} 秒") return result return wrapper @timer_decorator def slow_function(duration): time.sleep(duration) return "完成" slow_function(2) # 输出: slow_function 执行时间: 2.00x 秒(x 表示具体的小数秒)
文章来源:https://blog.csdn.net/xukris/article/details/135165974
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!