了解屈服函数

时间:2017-10-03 19:06:50

标签: python python-3.x

我正在分析以下代码示例:

>>> def check(v):
...     for t in v:
...             yield t
...             if t==2:
...                     yield "a"

我是否正确理解最后两行代码永远不会被执行,因为yield的作用是return。因此,基本上for循环中的第一个yield(在if子句之前)将始终应用。

我的理解是否正确?

更新

我不明白为什么我得到序列2,a,2,a,1,......而不是这一个:1,a,1,......

>>> my_list = [2,2,1,2,3]
>>> f = check(my_list)
>>> f.next()
2
>>> f.next()
'a'
>>> f.next()
2
>>> f.next()
'a'
>>> f.next()
1
>>> f.next()
2

0 个答案:

没有答案