#!/usr/bin/python
print("Hello, World!");
def h():
print ("hello")
m = yield 5
print ("m:", m)
d = yield 12
print ("d:",d )
print ("world")
c = h()
c.__next__() # hello # 5
c.__next__() # m: None # 12
c.__next__()
如上面提到的,调用next方法时,
- =(yield 5)
右边返回 5,却没有赋值给 m,是因为,在python中不支持表达式赋值吗?还是返回none
如下为生成器的 next() 函数的描述
即你在第一次 yield 5 后,,这个时候 m= 这个赋值操作根本没有执行,然后,第二次使用 next 时, 当前的 yield 表达式为 None,即 m=None