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

发布时间:2023年12月23日

  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 表示具体的小数秒)

文章来源:https://blog.csdn.net/xukris/article/details/135165974
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。