如何在不使用線程的情況下每2秒增加一個全局變量?根據時間製作計數器的最佳方法
def get_interval():
var a=1;
for every 2 second
a++;
return a;
如何每2秒增加a
的值?
如何在不使用線程的情況下每2秒增加一個全局變量?根據時間製作計數器的最佳方法
def get_interval():
var a=1;
for every 2 second
a++;
return a;
如何每2秒增加a
的值?
如果你從來沒有訪問變量,然後即使它隨着時間的推移而增加也不會很有用。所以你真正想要的是你可以通過某種方式訪問的東西,它會給你一個答案,就好像它隨着時間的推移而增加是。但要做到這一點,你所需要做的就是從你開始的時候減去當前時間。
例如,你可以使用這樣的事情:
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開始。)
如果你不擔心確切的時間,你可以睡2秒遞增這樣之間:
import time
a = 1
for i in range(10):
time.sleep(2)
print a
a += 1
輸出:
1
2
...
9
10
其實我想輸出爲1,2,3,4,...只要我們調用函數。 – dilip
更新的答案顯示 – 2013-07-20 13:37:30
感謝帝斯曼,它節省了我的時間 – dilip