博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day14
阅读量:6417 次
发布时间:2019-06-23

本文共 1878 字,大约阅读时间需要 6 分钟。

迭代器 什么是迭代器(iterator)     器指的是某种工具     迭代指的是更新换代的过程,例如应用程序的版本更新从1.0 变成 1.2     迭代的目的是要根据上一个结果,产生下一个结果,这是一个重复的过程,但不是单纯的重复 迭代器就是,一种根据上一个结果得到下一个结果的工具,简单的说就是一种获取数据的工具 可迭代对象     指的就是可以使用迭代器取出数据的对象     如何判断一个对象是否可迭代,就看这个对象是否提供了迭代器,通过对象调用__iter__()来获取迭代器     所有的容器类型(包括字符串)都是可迭代的 迭代器的使用     1.通过调用对象的__iter__()方法得到迭代器     2.通过迭代器的__next__()方法来获取每一个值 如何判断一个对象是不是迭代器?     迭代是为了取值,取值使用next方法,那么只要对象具备next方法就称之为迭代器     其中文件类型比较特殊,它既是迭代器,又是可迭代对象 迭代器总结:     迭代器是一种通用的取值工具     只有具备__inter__()方法的对象才能被迭代器取值,称之为可迭代对象     迭代器是为了取值,只要具备next方法的就是迭代器     python中迭代器同时具备iter方法和next方法,调用iter将返回迭代器自身     每一种数据类型内部的迭代实现都各不相同 为什么使用迭代器     统一取值方法 如何使用迭代器     for。。
生成器     generator     名词解释:         生成数据的工具         生成是从无到有的过程         工具可以直接看成函数,我们可以自己定义一个函数来产生数据,但是每次执行函数都只能产生一次数据         生成器的目的就是可以多次不断的生成数据     在python中生成器就是一个函数         但是函数内部具备至少一个yield关键字         反过来只要函数中出现了yield那么该函数就是一个生成器 yield关键字     一旦函数中出现了yield,调用函数时就不会立即执行函数体,并且会返回一个生成器对象     当调用生成器的next方法时会执行函数体,但是如果执行期间遇到yield,函数就会暂停执行     每一次调用next,都是从上一次yield的位置继续往下执行,同时会将yield后的数据返回给调用者 yield与return的区别     都能返回一个值     不同之处在于:return只返回一次值,只要执行return函数就整体结束了                   而yield可以返回多次值,并且会在返回后将函数暂停住 生成器就是迭代器     生成器同时具备iter和next函数,足以证明器就是一个迭代器,所以可以直接用for遍历     迭代器就是通过生成器实现的  迭代器,生成器,for之间的关系     for的原理是使用迭代器取值     迭代器是通过生成器实现的 了解知识点: yield的特殊用法     当你的生成器中需要外界数据参与时,生成器中如何接受外界的数据     闭包和函数都能传数据到生成器中,但是都只能接受一次值,如果想要多次传值就需要send函数了 send函数用于向生成器发送数据,但是要注意必须先进行初始化,也就是先调用一次next(方法)
面向过程编程     是一种编程思想,同样的在编程界不只有这一种编程思想,还有面向对象编程等等。。     编程思想没有高低之分,只有适合于不适合     你要思考的是什么样的应用程序应该采用哪种编程思想     核心在于过程,指的是在编程时时刻刻想着过程     过程指的就是,第一步干什么第二部干什么,完成这个任务需要哪些步骤     以及每个步骤要干什么     面向过程编程思想的优缺点     优点:可以将一个复杂的大问题,拆分为简单的小问题,将复杂的问题简单化,流程化     缺点:牵一发需要动全身,扩展性极差,正因如此,才有了新的编程思想,即面向对象     使用场景:对于一些对扩展性要求不高的应用程序,建议采用面向过程,例如系统内核,shell脚本程序等等     后期我们开发的应用程序大多是直接面向用户的,需求变化非常频繁,所以这时候就需要使用面相对象了

转载于:https://www.cnblogs.com/AfterJourney/p/10282983.html

你可能感兴趣的文章
Spring Data JPA Batch Insertion
查看>>
UEditor自动调节宽度
查看>>
JAVA做验证码图片(转自CSDN)
查看>>
Delphi TServerSocket,TClientSocket实现传送文件代码
查看>>
JS无聊之作
查看>>
Mac上搭建ELK
查看>>
443 Chapter7.Planning for High Availability in the Enterprise
查看>>
框架和语言的作用
查看>>
unidac连接ORACLE免装客户端驱动
查看>>
Cygwin + OpenSSH FOR Windows的安装配置
查看>>
咏南中间件支持手机客户端
查看>>
fastscript增加三方控件之二
查看>>
Windows Vista RTM 你准备好了么?
查看>>
Tensorflow Serving 模型部署和服务
查看>>
Java Web开发详解——XML+DTD+XML Schema+XSLT+Servlet 3.0+JSP 2.2深入剖析与实例应用
查看>>
topcoder srm 680 div1 -3
查看>>
具体数学第二版第四章习题(1)
查看>>
高效前端优化工具--Fiddler入门教程
查看>>
【翻译】我钟爱的HTML5和CSS3在线工具
查看>>
Java多线程学习(吐血超详细总结)
查看>>