Python 三大器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41245276/article/details/87488156

装饰器Decorator

  1. 经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用,装饰器的作用就是为已经存在的对象添加额外的功能。

 迭代器 

  1. 迭代器就是用于迭代操作(for 循环)的对象

  2. 任何实现了 __next__ 方法的对象都可以称为迭代器

  3. 列表把所有元素一次性加载到内存,而是以一种延迟计算(lazy evaluation)方式返回元素

生成器gnerator

  1. 如果直接创建 一个列表,受内存限制,列表容量肯定是有限的,如果太大的话,会占太多的内存,并且如果只用前面 几个,后面绝大多数元素占用的空间都白白浪费了,而生成器是一种边循环边计算的机制,不必创建完整的list,从而节省大量的空间
  2. generator保存的是算法,每次调用next(),就计算出下一个元素的值,直到计算到最后一个元素,没有更多的元素时,抛出StopIteration的错误

  3. 函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行

  4. 生成器只能遍历一次https://www.zhihu.com/question/20829330

  5. 合理使用生成器,能够有效提高代码可读性

  6. 生成器的好处是延迟计算,一次返回一个结果。也就是说,它不会一次生成所有的结果,这对于大数据量处理,将会非常有用

  7. 生成器比迭代器更加的简洁,是一个特殊的迭代器

猜你喜欢

转载自blog.csdn.net/weixin_41245276/article/details/87488156