background preloader

Python面试

Facebook Twitter

Old Nabble - python-chinese @ googlegroups - [CPyUG] tornado做的开源网站,可用来秀秀你用python/django/jquery等做的网站。//Fwd: A tornado powered site to show any project powered sites(open source) WxPython. Python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表) Python Programming Language – Official Website. Planet Python.

首页. Limodou的学习生活. [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source … 在 shhgs 发布了关于《 Py 2.5 what’s new 之 yield 》之后,原来我不是特别关注 yield 的用法,因为对于2.3中加入的yield相对来说功能简单,它是作为一个 generator 不可缺少的一条语句,只要包含它的函数即是一个 generator 。 但在2.3中,generator 不能重入,不能在运行过程中修改,不能引发异常,你要么是顺序调用,要么就创建一个新的 generator。 而且 generator 中的 yield 只是一个语句。 但到了 2.5 版之后,情况发生了很在的变化。 在 shhgs 的文章中对于 yield 并没有做太多的描述,也因此让我在理解上产生了许多问题,于是我仔细地研究了 What’s new 和 PEP 342 文档,有了一些体会,描述在下面。 这里不说为什么要对 yield 进行修改,只说功能。 1. yield 成为了表达式,它不再是语句,但可以放在单独的行上。 Redefine "yield" to be an expression, rather than a statement. 可以看到,如果你还是写成语句形式的话,其实还是一个表达式,只是它的值被扔掉了。

那么一个 yield 表达式可以这样写: x = yield i y = x + (yield x) 那么这种机制到底是如何工作的呢? 2. Add a new send() method for generator-iterators, which resumes the generator and "sends" a value that becomes the result of the current yield-expression. 执行一个 send(msg) 会恢复 generator 的运行,然后发送的值将成为 当前 yield 表达式的 返回值 。 那么可以看过这其实包含了一次运行,从将msg赋给当前被停住的 yield 表达式开始,到下一个 yield 语句结束,然后返回下一个yield语句的参数,然后再挂起,等待下一次的调用。

那么让我们开始想象一下,把 yield 转变为易于理解的东西吧。 我们可以把 yield 想象成下面的伪代码: x = yield i ==> put(i); x = wait_and_get() 看见什么了。 3. 分享一套 python 试题 - 赖勇浩的编程私伙局. Python面试题集合.