-4

15 秒ごとに値を更新して返すコードがあります。

def set_interval(func, sec):
    def func_wrapper():
        set_interval(func, sec)
        func()
    t = threading.Timer(sec, func_wrapper)
    t.start()
    return t

def gem_price():
    return random.randint(1,1000)
    print ("Updated")

set_interval(gem_price, 15)

コードの後半で、関数「gem_price」によって返された値を出力したいと考えています。これについて私が行ってきた方法は、関数自体を印刷することです。

print(gem_price())

私が抱えている問題は、このメソッドを使用して「gem_price」を出力するたびに、値が更新されることです。値を更新せずに出力できるようにしたいと思います。

これを行う方法はありますか?前もって感謝します!

4

2 に答える 2

0

15 秒ごとに値を出力したい場合は、次のように使用できます。

import time

while True: 
    ...
    Yourcode
    ...
    print('The answer is....', answer)
    time.sleep(15)
于 2013-09-29T11:46:44.613 に答える
0

gem_price()呼び出されるたびに、1 から 1000 までのランダムな整数を返すだけです。何も保存しません。この値を保存したい場合は、それを変数に代入するだけです:value = gem_price()そして、関数ではなくこの変数を使用します (別の値が必要な場合を除きますが、それを保持するには、別の変数に代入する必要があります)。ところで、あなたは関数の仕組みを完全には理解していないようです。関数内の変数は、関数が終了すると (通常) 削除されます。また、returnステートメントの後で実行フローが停止するため、あなたのprintに到達することはなく、したがって実行されることはありません。

Python チュートリアル のこの部分を読む必要があります。実は全部です。

于 2014-02-05T19:28:18.123 に答える