|
|
1
1
您对实际要做的事情的细节有点欠缺,但下面是我的最佳猜测(注意:您需要Python 2.6):
其工作原理如下: >>> do_stuff(3) child 1 got 0 child 2 got 0 child 3 got 1 child 2 got 3 child 3 got 3 child 3 got 9 很抱歉,这个例子有点让人困惑,我的大脑现在还不能想出一个更好的例子。
另外,请注意:
*这些子对象可以生成另一个生成器,该生成器可以添加到子对象列表中
*这个实现很慢(从列表的开头弹出需要O(n)个时间),请参阅“出列”模块
*那个
|
|
|
2
0
你的问题不太清楚。也许这会有帮助。 制作递归生成器很简单;函数只需迭代自身,而不是调用自身。例如,如果您想编写一个将树夷为平地的生成器,它可能如下所示:
这种方法是在找到每个子节点时将其返回给调用方。如果出于某种原因
这一切都假设这个过程是同步的。如果它是异步的(或可以被设置为异步的),那么您就有一个非常不同的问题,需要一种非常不同的方法。你可以把一个异步进程包装在一个生成器中,当结果变得可用时,它就会产生结果;如果这样做,对生成器的每次调用都将被阻塞,并等待后台线程(或进程)生成下一个可用的结果。这提供了一个简单的门面来隐藏异步代码背后的复杂性;打电话的人只是:
还有
怎么了
|