生成器的send方法

# 启动生成器两种方式:
	# 1. next()
	# 2.send
# 普通用法
def func():
	yield test1
	yield test2
	yield test3

if __name__ == __main__:
	# 启动生成器两种方式:
		# 1. next()
		# 2.send
		
	f = func()
	print(next(f))
	print(next(f))
	print(next(f))
# 其他用法
def func():
	# 1.可以产出值   2.可以接收值(此值是调用方传入的)
	result = yield "http://www.baidu.com"  #使用send方法才能使其运行到这行代码,next并不会
	yield test2
	# 此处为下一个yield位置
	yield test3

if __name__ == __main__:
	f = func()
	#调用send发送非None值之前(f.send("111")),必须启动一次生成器;
	#	方式一:f.send(None)     方式二:next(f)
	res = next(f)  # 运行时此处不显示结果,因为没有print
	
	# 运行如下代码会打印出传入的 str值和 test2(第一个yield值)
	str = "message“  
	print(f.send(str))  # send可以传递值进入生成器内部,同时还可以重启生成器执行到下一个yield位置
	
	

你可能感兴趣的:(python学习笔记,python,开发语言)