返回for 循环里面的变量,保持for循环不退出, goto或yield
我的需求是在一个while(1)循环中一直读取摄像头的值,并返回里面的一个变量值,但同时保持循环一直执行,查了很多资料,发现大部分都没有用,摸索了2个小时,终于找到了方法。那就是用yield,goto只能在函数内跳转,所以goto解决不了该问题。1. 先说一下goto吧,比较简单,就是通过跳转来实现,但仅在同一个函数内有效。使用前先安装goto: pip install goto-statemen
·
我的需求是在一个while(1)循环中一直读取摄像头的值,并返回里面的一个变量值,但同时保持循环一直执行,查了很多资料,发现大部分都没有用,摸索了2个小时,终于找到了方法。那就是用yield,goto只能在函数内跳转,所以goto解决不了该问题。
1. 先说一下goto吧,比较简单,就是通过跳转来实现,但仅在同一个函数内有效。
使用前先安装goto: pip install goto-statement
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from goto import with_goto
@with_goto
def range(start, stop):
i = start
result = []
label.begin
if i == stop:
goto.end
result.append(i)
i += 1
goto.begin
label.end
return result
if __name__=="__main__":
print(range(1, 5))
2. 生成器yield, 它可以吧fab函数内循环中的值传给test,并再次传给main,我用了两次,跑几下看看效果就懂了
def fab():
a= 1
while (1):
print("---",a)
yield a # 使用 yield
a+=2
if a>100:
return 0
def test():
for b in fab():
b+=3
yield b
def main():
for c in test():
print(c)
main()
更多推荐
已为社区贡献1条内容
所有评论(0)