2

入力に基づいて定義できる関数を作成して、keep_running実行されていた時間または反復回数に敏感になるようにしたいと考えています。関数の外側でカウンターをデクリメントせずに反復を行うPythonicな方法を思い付くことができないようです。

def keep_running(ttl):
    return ttl > 0

ttl = 1
while keep_running(ttl):
    do_stuff()
    ttl -= 1

できれば完全に関数内でこれを行うより良い方法はありますkeep_runningか?

4

2 に答える 2

2

あなたの要求についてはよくわかりません。しかし、イテレータは役に立つかもしれません。イテレータを使用します。次のようになります。

>>> def keep_running(ttl):
    while ttl>0:
        yield ttl
        ttl -= 1
>>> for one_round in keep_running(3):
    print(time.time())

結果は次のとおりです。

1365464545.465
1365464545.495
1365464545.505
于 2013-04-08T23:43:42.500 に答える