码迷,mamicode.com
首页 > 其他好文 > 详细

函数05

时间:2019-01-16 16:40:32      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:环境   通用   文件类型   需要   生成   遇到   中文   比较   基于   

迭代器

  iterator

  迭代器就是迭代的工具

  迭代是一个重复的过程,每一次重复即一次迭代,并且每一次迭代的结果都是下一次迭代的初始值

  迭代器就是,一个根据上一个结果得到下一个结果的工具,简单的说就是一种获取数据的工具

 

  可迭代对象

  指的是可以使用迭代器取出数据的对象

  如何判断一个对象是否可迭代,就看这个对象是否提供迭代器,通过对象调用__iter__()来获取迭代器

  所以的容器类型(包括字符串)都是可迭代的

  

  迭代器的使用

  通过调用对象的__iter__()方法得到迭代器

  调用迭代器的__next__()方法来获取每一个值

 

  如何判断一个对象是不是迭代器

  迭代是为了取值,取值使用next方法,那么只要对象具备next方法就称之为迭代器

  其中文件类型比较特殊,他既是迭代器,又是可迭代对象

 

  迭代器总结

  迭代器是一种通用的取值工具

  只要具备__iter__()方法的对象才能被迭代器取值,称之为可迭代对象

  迭代器是为了取值,只要具备next方法的就是迭代器

  python中迭代器同时具备iter方法和next方法,调用iter将安徽迭代器自身

  每一种数据类型内部的迭代实现都各不相同

 

生成器

  generator

  生成数据的工具

  我们可以自己定义一个函数来生产数据,但是每次执行函数都只能生产一个数据

  生成器的目的就是可以多次生成数据

  在python中生成器就是一个函数

  但是函数内部至少具备一个yield关键字

  

  yield关键字

  一旦函数内出现了yield,调用函数式就不会立即执行函数体,并且会返回一个生成器对象

  当调用生成器的next方法会执行函数体,但是如果执行期间遇到了yield,函数就会暂停执行

  每一次调用next都会从上一次yield的位置继续往下执行,同时会将yield后的数据返回给调用者

  yield与return的区别

  都返回一个值

  return只返回一次就结束,而yield可以多次返回,并且返回后将函数暂停

  

  生成器就是迭代器

  生产器同时具备iter和next函数,足以证明其就是一个迭代器,所以可以直接使用for来遍历

  迭代器就是通过生成器实现的

 

  迭代器,生成器,for之间的关系

  for的原理是使用迭代器取值

  迭代器是通过生成器实现的

 

  了解知识点:yield的特殊用法

  当你的生成器中需要外界数据参与时,生成器如何接受外界数据

  闭包函数可以传值但只能传一次

  想要多次传值就需要send方法

  使用send方法时需要注意必须进行了初始化,也就是先调用了一次next方法

 

面向过程编程

  是一种编程思想,同样的在编程界不只有这一种编程思想还有很多

  编程思想没有高低之分,只有适合与不适合

  面向过程的核心是过程二字,过程指的是解决问题的步骤

  基于面向过程设计编程就好比在设计一条流水线,是一种机械式的思维方式

  优点:复杂的问题流程化,进而简单化

  缺点:扩展性差,修改流水线的任意阶段,都会牵一发而动全身

  应用:扩展性要求不高的环境,典型案例linux内核

  

  

 

  

 

函数05

标签:环境   通用   文件类型   需要   生成   遇到   中文   比较   基于   

原文地址:https://www.cnblogs.com/LinChengcheng/p/10277259.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!