Python的生成器(Generators)和装饰器(Decorators)

  1. 生成器(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

  2. 装饰器(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 表示具体的小数秒)

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值