美文网首页
Vuex、可迭代对象、迭代器、生成器、协程

Vuex、可迭代对象、迭代器、生成器、协程

作者: 琉佳 | 来源:发表于2019-11-14 23:03 被阅读0次

    1、Vuex:一个专为 Vue.js 应用程序开发的状态管理模式。

    下载命令:npm install --save vuex

    Vuex 应用的核心是 store

    改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation

    状态存储是响应式的

    Action 提交的是 mutation,而不是直接变更状态

    Action 可以包含任意异步操作

    Action 通过 store.dispatch 方法触发

    2、

    可迭代对象:我们已经知道可以对list、tuple、str等类型的数据使用for...in...的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代。

    我们把可以通过for...in...这类语句迭代读取一条数据供我们使用的对象称之为可迭代对象(Iterable)**

    判断对象是否可迭代:使用 isinstance() 判断一个对象是否是 Iterable 对象

    *可迭代对象的本质就是可以向我们提供一个这样的中间“人”即迭代器帮助我们对其进行迭代遍历使用。

    *在迭代一个可迭代对象的时候,实际上就是先获取该对象提供的一个迭代器,然后通过这个迭代器来依次获取对象中的每一个数据.

    *可以通过iter()函数获取这些可迭代对象的迭代器

    总:一个具备了__iter__方法的对象,就是一个可迭代对象

    当我们已经迭代完最后一个数据之后,再次调用next()函数会抛出StopIteration的异常,来告诉我们所有数据都已迭代完成,不用再执行next()函数了。

    一个实现了__iter__方法和__next__方法的对象,就是迭代器。

    除了for循环能接收可迭代对象,list、tuple等也能接收。

    如果想要一个对象成为一个可以迭代的对象(即可以使用for),那么必须实现__iter__方法

    3、生成器:为了达到记录当前状态,并配合next()函数进行迭代使用,我们可以采用更简便的语法,即生成器(generator)。生成器是一类特殊的迭代器

    只要在def中有yield关键字的 就称为 生成器;使用了yield关键字的函数不再是函数,而是生成器

    yield关键字作用:保存当前运行状态(断点),然后暂停执行,即将生成器(函数)挂起

    将yield关键字后面表达式的值作为返回值返回,此时可以理解为起到了return的作用

    *可以使用next()函数让生成器从断点处继续执行,即唤醒生成器(函数)

    *使用send()唤醒:除了可以使用next()函数来唤醒生成器继续执行外,还可以使用send()函数来唤醒执行

    使用send()函数的一个好处是可以在唤醒的同时向断点处传入一个附加数据

    4、协程:协程是python个中另外一种实现多任务的方式

    自带CPU上下文;只要在合适的时机, 我们可以把一个协程 切换到另一个协程。 只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的

    相关文章

      网友评论

          本文标题:Vuex、可迭代对象、迭代器、生成器、协程

          本文链接:https://www.haomeiwen.com/subject/idndictx.html