スレッドを使用せずにグローバル変数を 2 秒ごとにインクリメントするにはどうすればよいでしょうか?
def get_interval():
var a=1;
for every 2 second
a++;
return a;
a
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 から開始するように簡単に変更できます。)
正確な時間を気にしない場合は、次のようにインクリメントの間に 2 秒間スリープできます。
import time
a = 1
for i in range(10):
time.sleep(2)
print a
a += 1
出力:
1
2
...
9
10