仅访问产生的变量一次

问题描述 投票:1回答:1

所以我们有一个像这样的功能:

def infinite_sequence():
  num = 0
  while True:
    yield num
    time.sleep(1)
    num += 1

下面的代码:

    for num in infinite_sequence():
      print(num)

将导致打印此:

0
1
2
3
4
...

现在想象infinite_sequence()在后台运行,我只需要打印实际的num变量。

Ex:运行一分钟后infinite_sequence(),结果应为60

我该怎么做?

python yield
1个回答
0
投票

我可以建议使用itertools.count()。至于从应用程序外部访问它,粗略而简单的方法是使用文件来保存值:

for num in itertools.count():
    with open('somefile.txt', 'w') as f:
        f.write(str(num))
        time.sleep(1)

然后您可以从外部读取文件。

© www.soinside.com 2019 - 2024. All rights reserved.