Python中的多入口,多出口协同例程

时间:2015-01-16 13:52:31

标签: python coroutine

def print2Combs(n):
    for i in range(0, n):
        for j in range(i+1, n):
            print (i,j)

print2Combs(5)

那段代码给了我这个输出:

0 1
0 2
0 3
0 4
1 2
1 3
1 4
2 3
2 4
3 4

据说,这个函数是一个co例程,它是一个多入口,多退出函数。它是一台发电机。我没有看到联系,也无法回答以下问题。

  1. 为什么它是多项录入功能?
  2. 为什么它是多退出功能?
  3. 为什么这是一个常规程序?
  4. 感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

A generator是一个返回迭代器的函数。

print2Combs返回None。 None不是迭代器,因此print2Combs不是生成器。

A coroutine is a kind of generator,允许在执行恢复时传入值或异常。

由于print2Combs不是生成器,因此它不能是协程。