使用生成器,实现单线程并发
- 触发迭代器运行方法一:
调用一次 _next_函数 - 触发迭代器运行方法二:
-用系统带的next()函数 - 触发迭代器运行方法三:
send法:
与next效果一样
def test():
print('开始啦')
firs=yield 1 #yield可以赋值
print('第一次',firs)
yield 2
print('第二次')
t=test() #只是产生了一个生成器,不会打印任何东西
t.__next__() #这样才会触发迭代器运行
结果:
开始啦
# -*- coding: utf-8 -*-
"""
Created on Tue Nov 26 18:32:59 2019
@author: clt
"""
def test():
print('开始啦')
firs=yield 1 #yield可以赋值
print('第一次',firs)
yield 2
print('第二次')
t=test() #只是产生了一个生成器,不会打印任何东西
#t.__next__()) #这样才会触发迭代器运行
t.send(None)
结果:
开始啦
上边两个结果一样
yield相当于return,控制的是函数的返回值
yield的另外一个特性是接受send穿过来得的值,可以赋值给变量
def test():
print('开始啦')