zoukankan      html  css  js  c++  java
  • 函数05

    迭代器

      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内核

      

      

      

  • 相关阅读:
    Python一些常用模块
    八、线程和进程
    七、Selenium与phantomJS----------动态页面模拟点击、网站模拟登录
    一、scrapy的下载安装---Windows(安装软件太让我伤心了)
    六、BeautifulSoup4------自动登录网站(手动版)
    五、XML与xpath--------------爬取美女图片
    四、正则表达式re模块
    三、Requests库的使用
    二、urllib进阶
    一、爬虫的基本体系和urllib的基本使用
  • 原文地址:https://www.cnblogs.com/LinChengcheng/p/10277259.html
Copyright © 2011-2022 走看看