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

下载命令: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、可迭代对象、迭代器、生成器、协程)