-1

我们如何在不使用线程的情况下每 2 秒增加一个全局变量?

def get_interval():
    var a=1;
    for every 2 second
    a++;
    return a;

如何增加a每 2 秒的值?

4

2 回答 2

2

如果您从不访问该变量,那么即使它随着时间的推移而增加,它也不会很有用。所以你真正想要的是你可以通过某种方式访问​​的东西,它会给你一个答案,就好像它随着时间的推移而增加一样。但要做到这一点,您需要做的就是从开始时减去当前时间。

例如,您可以使用如下内容:

import time

def make_ticker():
    start = time.time()
    def elapsed():
        now = time.time()
        return now-start
    return elapsed

然后在启动它之后,你需要做的就是写a()而不是a

>>> a = make_ticker()
>>> a()
3.3126659393310547
>>> a()
5.144495010375977
>>> a()
7.766999006271362

同样,如果要计算已过去的 2 秒周期数:

def make_ticker(seconds):
    start = time.time()
    def elapsed():
        now = time.time()
        return (now-start)//seconds
    return elapsed

>>> a = make_ticker(2)
>>> a()
0.0
>>> a()
1.0
>>> a()
1.0
>>> a()
2.0

(您可以简单地修改为从 1 开始。)

于 2013-07-20T13:33:01.030 回答
1

如果您不担心确切的时间,您可以在增量之间睡 2 秒,如下所示:

import time

a = 1

for i in range(10):
    time.sleep(2)
    print a
    a += 1

输出:

1
2
...
9
10
于 2013-07-20T13:13:13.030 回答