如何在不使用线程的情况下每2秒增加一个全局变量?
def get_interval():
var a=1;
for every 2 second
a++;
return a;
如何每2秒增加a
的值?
答案 0 :(得分: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开始。)
答案 1 :(得分:1)
如果你不担心确切的时间,你可以在这两次递增之间睡2秒钟:
import time
a = 1
for i in range(10):
time.sleep(2)
print a
a += 1
输出:
1
2
...
9
10