Python Yield尝试
来源:互联网 发布:什么是数据库存储过程 编辑:程序博客网 时间:2024/05/18 00:06
Yield在Python里面是个不容易理解的概念,通过一个程序(Python 2.7里面的),再加上
http://docs.python.org/release/2.5.2/ref/yieldexpr.html的注释,我们大概可以理解yield和set/next是如何改变代码执行的顺序和变量赋值的。
请看下面的程序
程序运行的结果是
x1 = 1
x2 = 2
x3 = (3, 6, None)
def s(v): value1 = v value2 = yield 1 value3 = yield 2 yield value1,value2,value3h = s(3)x1 = h.next() #第一次iter,函数s开始运行,传入参数v=3,一直运行到yield 1,从而x1 = 1 #(注意,此时还没有走到给value2赋值) x2 = h.send(6) #第二次iter,函数s继续运行,value2 开始赋值等于传入的6,一直运行到 yield 2,从而x2 = 2 #(注意,此时还没有走到给value3赋值) x3 = h.next() #第三次iter,函数s继续运行,由于next = set(None),所以Value3 = None,一直运行到yield value1, value2, value3,从而x3=(3,6,None)print x1print x2print x3
- Python Yield尝试
- 尝试解释Python中的yield
- python----yield
- Python yield
- python yield
- python yield
- python --yield
- Python yield
- Python -- yield
- python yield
- Python yield
- python yield
- Python yield
- python yield
- python --yield
- Python yield
- python yield
- Python yield
- 【转】怎样将APP或PXL转为IPA格式
- [转]GCC 4.6 warning: variable …
- 3gs刷IOS5完美越狱后,打电话接通…
- 给力的文本编辑器——emacs
- 【转】在ecb里使用自定义快捷键切…
- Python Yield尝试
- Quartz中时间表达式的设置-----corn表达式
- 重写drawrect,带下划线的button
- [转]emacs+psvn
- 【转】关于分支延迟槽
- 2012年02月01日
- 免费的JSP服务器JHost
- 获取当前目标所属插件信息
- [转]